Theory IsaFoR_Nonground_Term

theory IsaFoR_Nonground_Term
  imports 
    Nonground_Term
    Generic_Term
    Abstract_Substitution.Substitution_First_Order_Term
begin

global_interpretation "term": nonground_term where
  comp_subst = "(∘s)" and id_subst = Var and term_subst = "(⋅)" and apply_subst = apply_subst and
  subst_update = fun_upd and subst_updates = subst_updates and term_vars = vars_term and
  term_to_ground = gterm_of_term and term_from_ground = term_of_gterm and
  term_is_ground = is_ground
  by unfold_locales

global_interpretation "term": smaller_subterms where
  subterms = args and size = size and is_var = is_Var
  by unfold_locales (metis in_set_simps(3) supt.intros(1) supt_size term.exhaust_sel term.sel(3))

end