Theory: finite_functions

Parents


Type constants


Term constants


Axioms


Definitions

finfun_TY_DEF
|- ?rep. TYPE_DEFINITION (\f. FINITE {x | part_fun_domain f x}) rep
finfun_REP_ABS_DEF
|- (!a. finfun (finfun_apply a) = a) /\
   (!r.
     (\f. FINITE {x | part_fun_domain f x}) r = finfun_apply (finfun r) = r)

Theorems

delete_lemma
|- !f x. ~(part_fun_domain (update_fun f x undefined) x)
delete_smaller
|- !f y.
     FINITE {x | part_fun_domain f x} /\ part_fun_domain f y ==>
     (CARD {x | part_fun_domain f x} =
      SUC (CARD {x | part_fun_domain (update_fun f y undefined) x}))
empty_part_fun_domain_EMPTY
|- {x | part_fun_domain empty_part_fun x} = {}
EMPTY_part_fun_domain_imp_empty_part_fun
|- !f. ({x | part_fun_domain f x} = {}) ==> (f = empty_part_fun)
gen_finfun_induction
|- !P.
     (!f.
       (!g.
         CARD {x | part_fun_domain (finfun_apply g) x} <
         CARD {x | part_fun_domain (finfun_apply f) x} ==>
         P g) ==>
       P f) ==>
     (!f. P f)