equal
deleted
inserted
replaced
64 |
64 |
65 syntax "_Proof" :: "[p,o]=>prop" ("(_ /: _)" [51, 10] 5) |
65 syntax "_Proof" :: "[p,o]=>prop" ("(_ /: _)" [51, 10] 5) |
66 |
66 |
67 parse_translation {* |
67 parse_translation {* |
68 let fun proof_tr [p, P] = Const (@{const_syntax Proof}, dummyT) $ P $ p |
68 let fun proof_tr [p, P] = Const (@{const_syntax Proof}, dummyT) $ P $ p |
69 in [(@{syntax_const "_Proof"}, proof_tr)] end |
69 in [(@{syntax_const "_Proof"}, K proof_tr)] end |
70 *} |
70 *} |
71 |
71 |
72 (*show_proofs = true displays the proof terms -- they are ENORMOUS*) |
72 (*show_proofs = true displays the proof terms -- they are ENORMOUS*) |
73 ML {* val show_proofs = Attrib.setup_config_bool @{binding show_proofs} (K false) *} |
73 ML {* val show_proofs = Attrib.setup_config_bool @{binding show_proofs} (K false) *} |
74 |
74 |
75 print_translation (advanced) {* |
75 print_translation {* |
76 let |
76 let |
77 fun proof_tr' ctxt [P, p] = |
77 fun proof_tr' ctxt [P, p] = |
78 if Config.get ctxt show_proofs then Const (@{syntax_const "_Proof"}, dummyT) $ p $ P |
78 if Config.get ctxt show_proofs then Const (@{syntax_const "_Proof"}, dummyT) $ p $ P |
79 else P |
79 else P |
80 in [(@{const_syntax Proof}, proof_tr')] end |
80 in [(@{const_syntax Proof}, proof_tr')] end |