Theory Ground_Term_Order

theory Ground_Term_Order
  imports
    Ground_Context
    Context_Compatible_Order
    Term_Order_Notation
    Transitive_Closure_Extra
begin

locale context_compatible_ground_order = context_compatible_order where Fun = GFun

locale subterm_property =
  strict_order where less = lesst
  for lesst :: "'f gterm  'f gterm  bool" +
  assumes
    subterm_property [simp]: "t c. c    lesst t ctG"
begin

interpretation term_order_notation.

lemma less_eq_subterm_property: "t t ctG"
  using subterm_property
  by (metis gctxt_ident_iff_eq_GHole reflclp_iff)

end

locale ground_term_order =
  wellfounded_strict_order lesst +
  total_strict_order lesst +
  context_compatible_ground_order lesst +
  subterm_property lesst
  for lesst :: "'f gterm  'f gterm  bool"
begin

interpretation term_order_notation.


end

end