911 end; |
911 end; |
912 |
912 |
913 |
913 |
914 (* basic logic *) |
914 (* basic logic *) |
915 |
915 |
916 fun axiom_proof thy name A = |
916 fun zproof_axiom thy name A = zproof_const (ZAxiom name, zterm_of thy A); |
917 ZConstp (zproof_const (ZAxiom name, zterm_of thy A)); |
917 val axiom_proof = ZConstp ooo zproof_axiom; |
918 |
918 |
919 fun oracle_proof thy name A = |
919 fun oracle_proof thy name A = |
920 ZConstp (zproof_const (ZOracle name, zterm_of thy A)); |
920 ZConstp (zproof_const (ZOracle name, zterm_of thy A)); |
921 |
921 |
922 fun assume_proof thy A = |
922 fun assume_proof thy A = |
987 (Binding.name "imp", propT --> propT --> propT, NoSyn), |
987 (Binding.name "imp", propT --> propT --> propT, NoSyn), |
988 (Binding.name "eq", Term.aT [] --> Term.aT [] --> propT, NoSyn)]; |
988 (Binding.name "eq", Term.aT [] --> Term.aT [] --> propT, NoSyn)]; |
989 |
989 |
990 val [reflexive_axiom, symmetric_axiom, transitive_axiom, equal_intr_axiom, equal_elim_axiom, |
990 val [reflexive_axiom, symmetric_axiom, transitive_axiom, equal_intr_axiom, equal_elim_axiom, |
991 abstract_rule_axiom, combination_axiom] = |
991 abstract_rule_axiom, combination_axiom] = |
992 Theory.equality_axioms |> map (fn (b, t) => |
992 Theory.equality_axioms |> map (fn (b, t) => zproof_axiom thy0 (Sign.full_name thy0 b) t); |
993 let val ZConstp c = axiom_proof thy0 (Sign.full_name thy0 b) t in c end); |
|
994 |
993 |
995 in |
994 in |
996 |
995 |
997 val is_reflexive_proof = |
996 val is_reflexive_proof = |
998 fn ZConstp ((ZAxiom "Pure.reflexive", _), _) => true | _ => false; |
997 fn ZConstp ((ZAxiom "Pure.reflexive", _), _) => true | _ => false; |