equal
deleted
inserted
replaced
44 val mk_predT: typ list -> typ |
44 val mk_predT: typ list -> typ |
45 val mk_pred1T: typ -> typ |
45 val mk_pred1T: typ -> typ |
46 |
46 |
47 val mk_disjIN: int -> int -> thm |
47 val mk_disjIN: int -> int -> thm |
48 |
48 |
|
49 val mk_abs_def: thm -> thm |
49 val mk_unabs_def: int -> thm -> thm |
50 val mk_unabs_def: int -> thm -> thm |
50 |
51 |
51 val mk_IfN: typ -> term list -> term list -> term |
52 val mk_IfN: typ -> term list -> term list -> term |
52 val mk_Trueprop_eq: term * term -> term |
53 val mk_Trueprop_eq: term * term -> term |
53 val mk_Trueprop_mem: term * term -> term |
54 val mk_Trueprop_mem: term * term -> term |
191 fun mk_disjIN 1 1 = @{thm TrueE[OF TrueI]} |
192 fun mk_disjIN 1 1 = @{thm TrueE[OF TrueI]} |
192 | mk_disjIN _ 1 = disjI1 |
193 | mk_disjIN _ 1 = disjI1 |
193 | mk_disjIN 2 2 = disjI2 |
194 | mk_disjIN 2 2 = disjI2 |
194 | mk_disjIN n m = (mk_disjIN (n - 1) (m - 1)) RS disjI2; |
195 | mk_disjIN n m = (mk_disjIN (n - 1) (m - 1)) RS disjI2; |
195 |
196 |
|
197 fun mk_abs_def thm = Drule.abs_def (thm RS eq_reflection handle THM _ => thm); |
196 fun mk_unabs_def n = funpow n (fn thm => thm RS fun_cong); |
198 fun mk_unabs_def n = funpow n (fn thm => thm RS fun_cong); |
197 |
199 |
198 fun mk_IfN _ _ [t] = t |
200 fun mk_IfN _ _ [t] = t |
199 | mk_IfN T (c :: cs) (t :: ts) = |
201 | mk_IfN T (c :: cs) (t :: ts) = |
200 Const (@{const_name If}, HOLogic.boolT --> T --> T --> T) $ c $ t $ mk_IfN T cs ts; |
202 Const (@{const_name If}, HOLogic.boolT --> T --> T --> T) $ c $ t $ mk_IfN T cs ts; |