equal
deleted
inserted
replaced
48 prop: cterm} |
48 prop: cterm} |
49 exception THM of string * int * thm list |
49 exception THM of string * int * thm list |
50 type 'a attribute (* = 'a * thm -> 'a * thm *) |
50 type 'a attribute (* = 'a * thm -> 'a * thm *) |
51 val eq_thm : thm * thm -> bool |
51 val eq_thm : thm * thm -> bool |
52 val sign_of_thm : thm -> Sign.sg |
52 val sign_of_thm : thm -> Sign.sg |
|
53 val prop_of : thm -> term |
53 val transfer_sg : Sign.sg -> thm -> thm |
54 val transfer_sg : Sign.sg -> thm -> thm |
54 val transfer : theory -> thm -> thm |
55 val transfer : theory -> thm -> thm |
55 val tpairs_of : thm -> (term * term) list |
56 val tpairs_of : thm -> (term * term) list |
56 val prems_of : thm -> term list |
57 val prems_of : thm -> term list |
57 val nprems_of : thm -> int |
58 val nprems_of : thm -> int |
322 aconvs (hyps1, hyps2) andalso |
323 aconvs (hyps1, hyps2) andalso |
323 prop1 aconv prop2 |
324 prop1 aconv prop2 |
324 end; |
325 end; |
325 |
326 |
326 fun sign_of_thm (Thm {sign_ref, ...}) = Sign.deref sign_ref; |
327 fun sign_of_thm (Thm {sign_ref, ...}) = Sign.deref sign_ref; |
|
328 fun prop_of (Thm {prop, ...}) = prop; |
327 |
329 |
328 (*merge signatures of two theorems; raise exception if incompatible*) |
330 (*merge signatures of two theorems; raise exception if incompatible*) |
329 fun merge_thm_sgs |
331 fun merge_thm_sgs |
330 (th1 as Thm {sign_ref = sgr1, ...}, th2 as Thm {sign_ref = sgr2, ...}) = |
332 (th1 as Thm {sign_ref = sgr1, ...}, th2 as Thm {sign_ref = sgr2, ...}) = |
331 Sign.merge_refs (sgr1, sgr2) handle TERM (msg, _) => raise THM (msg, 0, [th1, th2]); |
333 Sign.merge_refs (sgr1, sgr2) handle TERM (msg, _) => raise THM (msg, 0, [th1, th2]); |