equal
deleted
inserted
replaced
25 fun err msg = raise TERM (msg, [eq]); |
25 fun err msg = raise TERM (msg, [eq]); |
26 val eq_vars = Term.strip_all_vars eq; |
26 val eq_vars = Term.strip_all_vars eq; |
27 val eq_body = Term.strip_all_body eq; |
27 val eq_body = Term.strip_all_body eq; |
28 |
28 |
29 val display_terms = |
29 val display_terms = |
30 commas_quote o map (Syntax.string_of_term ctxt o Syntax.bound_vars eq_vars); |
30 commas_quote o map (Syntax.string_of_term ctxt o Syntax_Trans.bound_vars eq_vars); |
31 val display_types = commas_quote o map (Syntax.string_of_typ ctxt); |
31 val display_types = commas_quote o map (Syntax.string_of_typ ctxt); |
32 |
32 |
33 val (raw_lhs, rhs) = Logic.dest_equals eq_body handle TERM _ => err "Not a meta-equality (==)"; |
33 val (raw_lhs, rhs) = Logic.dest_equals eq_body handle TERM _ => err "Not a meta-equality (==)"; |
34 val lhs = Envir.beta_eta_contract raw_lhs; |
34 val lhs = Envir.beta_eta_contract raw_lhs; |
35 val (head, args) = Term.strip_comb lhs; |
35 val (head, args) = Term.strip_comb lhs; |