equal
deleted
inserted
replaced
171 val standard_vars_term: Name.context -> term -> term |
171 val standard_vars_term: Name.context -> term -> term |
172 val add_standard_vars: proof -> (string * typ) list -> (string * typ) list |
172 val add_standard_vars: proof -> (string * typ) list -> (string * typ) list |
173 val add_standard_vars_term: term -> (string * typ) list -> (string * typ) list |
173 val add_standard_vars_term: term -> (string * typ) list -> (string * typ) list |
174 |
174 |
175 val export_enabled: unit -> bool |
175 val export_enabled: unit -> bool |
|
176 val export_standard_enabled: unit -> bool |
176 val fulfill_norm_proof: theory -> (serial * proof_body) list -> proof_body -> proof_body |
177 val fulfill_norm_proof: theory -> (serial * proof_body) list -> proof_body -> proof_body |
177 val commit_proof: proof -> unit |
178 val commit_proof: theory -> proof -> unit |
178 val thm_proof: theory -> (class * class -> proof) -> |
179 val thm_proof: theory -> (class * class -> proof) -> |
179 (string * class list list * class -> proof) -> string * Position.T -> sort list -> |
180 (string * class list list * class -> proof) -> string * Position.T -> sort list -> |
180 term list -> term -> (serial * proof_body future) list -> proof_body -> thm * proof |
181 term list -> term -> (serial * proof_body future) list -> proof_body -> thm * proof |
181 val unconstrain_thm_proof: theory -> (class * class -> proof) -> |
182 val unconstrain_thm_proof: theory -> (class * class -> proof) -> |
182 (string * class list list * class -> proof) -> sort list -> term -> |
183 (string * class list list * class -> proof) -> sort list -> term -> |
2086 |
2087 |
2087 |
2088 |
2088 (* PThm nodes *) |
2089 (* PThm nodes *) |
2089 |
2090 |
2090 fun export_enabled () = Options.default_bool "export_proofs"; |
2091 fun export_enabled () = Options.default_bool "export_proofs"; |
2091 |
2092 fun export_standard_enabled () = Options.default_bool "export_standard_proofs"; |
2092 fun commit_proof proof = |
2093 |
|
2094 fun export_proof_boxes proof = |
2093 let |
2095 let |
2094 fun export_boxes (AbsP (_, _, prf)) = export_boxes prf |
2096 fun export_boxes (AbsP (_, _, prf)) = export_boxes prf |
2095 | export_boxes (Abst (_, _, prf)) = export_boxes prf |
2097 | export_boxes (Abst (_, _, prf)) = export_boxes prf |
2096 | export_boxes (prf1 %% prf2) = export_boxes prf1 #> export_boxes prf2 |
2098 | export_boxes (prf1 %% prf2) = export_boxes prf1 #> export_boxes prf2 |
2097 | export_boxes (prf % _) = export_boxes prf |
2099 | export_boxes (prf % _) = export_boxes prf |
2105 val boxes' = boxes |> not (Lazy.is_finished export) ? Inttab.update (i, export); |
2107 val boxes' = boxes |> not (Lazy.is_finished export) ? Inttab.update (i, export); |
2106 in export_boxes prf' boxes' end) |
2108 in export_boxes prf' boxes' end) |
2107 | export_boxes _ = I; |
2109 | export_boxes _ = I; |
2108 val boxes = (proof, Inttab.empty) |-> export_boxes |> Inttab.dest; |
2110 val boxes = (proof, Inttab.empty) |-> export_boxes |> Inttab.dest; |
2109 in List.app (Lazy.force o #2) boxes end; |
2111 in List.app (Lazy.force o #2) boxes end; |
|
2112 |
|
2113 fun commit_proof thy proof = |
|
2114 if Context.theory_name thy = Context.PureN orelse |
|
2115 (export_enabled () andalso not (export_standard_enabled ())) |
|
2116 then export_proof_boxes proof else (); |
2110 |
2117 |
2111 local |
2118 local |
2112 |
2119 |
2113 fun unconstrainT_proof algebra classrel_proof arity_proof (ucontext: Logic.unconstrain_context) = |
2120 fun unconstrainT_proof algebra classrel_proof arity_proof (ucontext: Logic.unconstrain_context) = |
2114 let |
2121 let |
2154 end; |
2161 end; |
2155 |
2162 |
2156 fun export thy i prop prf = |
2163 fun export thy i prop prf = |
2157 if export_enabled () then |
2164 if export_enabled () then |
2158 let |
2165 let |
2159 val _ = commit_proof prf; |
2166 val _ = export_proof_boxes prf; |
2160 val _ = export_proof thy i prop prf; |
2167 val _ = export_proof thy i prop prf; |
2161 in () end |
2168 in () end |
2162 else (); |
2169 else (); |
2163 |
2170 |
2164 fun prune proof = |
2171 fun prune proof = |