(only non hidden objects are presented)
| DISP | three_df | 3== 3 |
| ABS | three | 3 == |
| THM | three_wf | 3 |
| DISP | Three_df | |
| ABS | Three | |
| THM | Three_wf | |
| DISP | Three_0_df | 3 |
| ABS | Three_0 | 3 |
| THM | Three_0_wf | 3 |
| DISP | Three_1_df | 3 |
| ABS | Three_1 | 3 |
| THM | Three_1_wf | 3 |
| DISP | Three_2_df | 3 |
| ABS | Three_2 | 3 |
| THM | Three_2_wf | 3 |
| DISP | Three_case_df | case{->0} <T:Three:L>: 3 |
| ABS | Three_case | case x: 3 |
| ML | Three_case_unroll | let get_three_case_arg =
fst o fst o dest_term o snd o hd o snd o dest_term;;
let three_caseC t =
let arg = (get_three_case_arg t) in
(FwdMacroC
(concat `Three_case_` (concat arg `_unrollC`))
(AllC [UnfoldC `Three_case`;
UnfoldC arg;
ReduceC])
t)
;;
let Three_case_unrollC =
FirstC[three_caseC |
| ML | ThreeCase | let ThreeCases i p = (let i = get_pos_hyp_num i p in let f = (\n. D i THEN Fold `it` 0 THEN Fold n 0 THEN UnivCD THENA Auto) in MoveDepHypsToConclFor (\i. D (i) THENL [f `Three_0`; D (i) THENL [f `Three_1`; f `Three_2`]]) i THENA Auto ) p ;; |
| ML | Three_ind | let ThreeInd i p = (let j = get_pos_hyp_num i p in let AllFolds l = (Repeat (TryOnAllHyps (\i. Folds l i) THEN Try (Folds l 0))) in Unfold `Three` j THEN D j THENL [Id; D j] THEN UnitInd j THENL [ AllFolds ``Three_0``; AllFolds ``Three_1``; AllFolds ``Three_2``] ) p ;; |
| THM | Three_ind_ext | |
| ML | Three_eq_contradiciton | let mk_Three_case v = mk_simple_term `Three_case` [mvt v; |
| THM | Three_eq_contradiction_ext | |
| THM | Three_case_wf_0 | |
| THM | Three_case_wf_1 | |
| THM | Three_case_wf_2 | |
| THM | decidable__equal_Three |