546 fun store_standard_thm name thm = store_thm name (standard thm); |
546 fun store_standard_thm name thm = store_thm name (standard thm); |
547 fun store_thm_open name thm = hd (PureThy.smart_store_thms_open (name, [thm])); |
547 fun store_thm_open name thm = hd (PureThy.smart_store_thms_open (name, [thm])); |
548 fun store_standard_thm_open name thm = store_thm_open name (standard' thm); |
548 fun store_standard_thm_open name thm = store_thm_open name (standard' thm); |
549 |
549 |
550 val reflexive_thm = |
550 val reflexive_thm = |
551 let val cx = cterm_of proto_sign (Var(("x",0),TVar(("'a",0),logicS))) |
551 let val cx = cterm_of proto_sign (Var(("x",0),TVar(("'a",0),[]))) |
552 in store_standard_thm_open "reflexive" (Thm.reflexive cx) end; |
552 in store_standard_thm_open "reflexive" (Thm.reflexive cx) end; |
553 |
553 |
554 val symmetric_thm = |
554 val symmetric_thm = |
555 let val xy = read_prop "x::'a::logic == y" |
555 let val xy = read_prop "x == y" |
556 in store_standard_thm_open "symmetric" (Thm.implies_intr_hyps (Thm.symmetric (Thm.assume xy))) end; |
556 in store_standard_thm_open "symmetric" (Thm.implies_intr_hyps (Thm.symmetric (Thm.assume xy))) end; |
557 |
557 |
558 val transitive_thm = |
558 val transitive_thm = |
559 let val xy = read_prop "x::'a::logic == y" |
559 let val xy = read_prop "x == y" |
560 val yz = read_prop "y::'a::logic == z" |
560 val yz = read_prop "y == z" |
561 val xythm = Thm.assume xy and yzthm = Thm.assume yz |
561 val xythm = Thm.assume xy and yzthm = Thm.assume yz |
562 in store_standard_thm_open "transitive" (Thm.implies_intr yz (Thm.transitive xythm yzthm)) end; |
562 in store_standard_thm_open "transitive" (Thm.implies_intr yz (Thm.transitive xythm yzthm)) end; |
563 |
563 |
564 fun symmetric_fun thm = thm RS symmetric_thm; |
564 fun symmetric_fun thm = thm RS symmetric_thm; |
565 |
565 |
696 Rewrite rule for HHF normalization.*) |
696 Rewrite rule for HHF normalization.*) |
697 |
697 |
698 val norm_hhf_eq = |
698 val norm_hhf_eq = |
699 let |
699 let |
700 val cert = Thm.cterm_of proto_sign; |
700 val cert = Thm.cterm_of proto_sign; |
701 val aT = TFree ("'a", Term.logicS); |
701 val aT = TFree ("'a", []); |
702 val all = Term.all aT; |
702 val all = Term.all aT; |
703 val x = Free ("x", aT); |
703 val x = Free ("x", aT); |
704 val phi = Free ("phi", propT); |
704 val phi = Free ("phi", propT); |
705 val psi = Free ("psi", aT --> propT); |
705 val psi = Free ("psi", aT --> propT); |
706 |
706 |