src/Pure/zterm.ML
changeset 80265 cb795bbce540
parent 80264 71c1cf9e7413
child 80266 d52be75ae60b
equal deleted inserted replaced
80264:71c1cf9e7413 80265:cb795bbce540
   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;