(only non hidden objects are presented)
| DISP | partial_valuation_df | (<F:Formula:L> eval under <a:Assignment:L>) == (<F> eval under <a>) |
| ABS | partial_valuation | (F eval under a) ==
(letrec val f = case f:
|
| ML | partial_valuation_unroll | let get_formula_type_from_partial_valuation =
fst o fst o dest_term o snd o hd o snd o dest_term
;;
let partial_valuationC t =
FwdMacroC
(concat `partial_valuation_`
(concat (get_formula_type_from_partial_valuation t)
`_unrollC`))
(AllC [UnfoldC `partial_valuation`;
letrec_unrollC;
formula_case_unrollC;
TryC (FoldC `partial_valuation`)])
t
;;
let partial_valuation_unrollC =
FirstC (map partial_valuationC [ |
| THM | partial_valuation_wf | |
| DISP | lift_df | h(<x:pv:*>)== h(<x>) |
| ABS | lift | h(x) == case x of inl(b) => if b then 3 |
| ML | lift_unroll | let lift_unroller t =
FwdMacroC `lift_unrollC`
(AllC [UnfoldC `lift`;
ReduceC])
t
;;
let lift_unrollC =
SomeC[lift_unroller |
| THM | lift_wf | |
| THM | lift_true_lemma | |
| THM | lift_false_lemma | |
| THM | lift_undecided_lemma | |
| THM | partial_valuation_correct |