fact: Definition is_coherent (unit_theory : Symb.A -> unit_theory_type) := forall f, match unit_theory f with | LU u => arity f = Free 2 /\ arity u = Free 0 | RU u => arity f = Free 2 /\ arity u = Free 0 | U u => (arity f = Free 2 \/ arity f = C \/ arity f = AC) /\ (arity u = Free 0) | Nothing => True end.
imports: Coq(Arith List Relations) CoLoR(closure more_list weaved_relation list_sort term_spec equational_theory ac cf_eq_ac rpo)