Theory: lift

Parents


Type constants


Term constants


Axioms


Definitions

lift_TY_DEF
|- ?rep. TYPE_DEFINITION (\x. T) rep
lift_REP_ABS_DEF
|- (!a. lift_ABS (lift_REP a) = a) /\
   (!r. (\x. T) r = lift_REP (lift_ABS r) = r)
lift_DEF
|- !x. lift x = lift_ABS (INL x)
undefined_DEF
|- undefined = lift_ABS (INR one)
is_defined_DEF
|- !x. is_defined x = (?y. x = lift y)
lower_DEF
|- !x. lower (lift x) = x

Theorems

lift_CASES
|- !l. (?x. l = lift x) \/ (l = undefined)
lift_INDUCTION
|- !P. (!x. P (lift x)) /\ P undefined ==> (!l. P l)
lift_ONE_ONE
|- !x x'. (lift x = lift x') = x = x'
lift_constructors_distinct
|- !x. ~(lift x = undefined)
lift_Axiom
|- !f e. ?!fn. (!x. fn (lift x) = f x) /\ (fn undefined = e)
undef_not_lift
|- !x. ~(undefined = lift x)
undefined_not_exists_THM
|- !y. (y = undefined) = ~(?x. y = lift x)
exists_not_undefined_THM
|- !y. (?x. y = lift x) = ~(y = undefined)
is_defined_lemma
|- (!x. is_defined (lift x)) /\ ~(is_defined undefined)
is_defined_is_not_undefined
|- !x. is_defined x = ~(x = undefined)
lift_lower_THM
|- !y. (lift (lower y) = y) = is_defined y
lower_ONE_ONE
|- !x y. is_defined x /\ is_defined y ==> ((lower x = lower y) = x = y)