(only non hidden objects are presented)
| DISP | valuation_df | (<F:Formula:L> under <a:Assignment:L>) == (<F> under <a>) |
| ABS | valuation | (F under a) ==
(letrec val f = case f:
|
| ML | valuation_unroll | let get_formula_type_from_valuation =
fst o fst o dest_term o snd o hd o snd o dest_term
;;
let valuationC t =
FwdMacroC
(concat `valuation_`
(concat (get_formula_type_from_valuation t)
`_unrollC`))
(AllC [UnfoldC `valuation`;
letrec_unrollC;
formula_case_unrollC;
TryC (FoldC `valuation`)])
t
;;
let valuation_unrollC =
FirstC (map valuationC [ |
| THM | valuation_wf |