Equations
- instDecidablePredCompProp = inferInstanceAs (DecidablePred fun x => p (f x))
not #
iff #
implies #
and #
or #
distributivity #
exists and forall #
Extract an element from a existential statement, using Classical.choose
.
Equations
Instances For
Show that an element extracted from P : ∃ a, p a
using P.choose
satisfies p
.
decidable #
Construct a non-Prop by cases on an Or
, when the left conjunct is decidable.
Equations
- Or.by_cases h h₁ h₂ = if hp : p then h₁ hp else h₂ (Or.resolve_left h hp)
Instances For
Construct a non-Prop by cases on an Or
, when the right conjunct is decidable.
Equations
- Or.by_cases' h h₁ h₂ = if hq : q then h₂ hq else h₁ (Or.resolve_right h hq)
Instances For
Equations
- exists_prop_decidable P = if h : p then decidable_of_decidable_of_iff (_ : P h ↔ ∃ h, P h) else isFalse (_ : (∃ h, P h) → False)
Equations
- forall_prop_decidable P = if h : p then decidable_of_decidable_of_iff (_ : P h ↔ (h : p) → P h) else isTrue (forall_prop_decidable.proof_2 P h)
Transfer decidability of a
to decidability of b
, if the propositions are equivalent.
Important: this function should be used instead of rw
on decidable b
, because the
kernel will get stuck reducing the usage of propext
otherwise,
and dec_trivial
will not work.
Equations
Instances For
Transfer decidability of b
to decidability of a
, if the propositions are equivalent.
This is the same as decidable_of_iff
but the iff is flipped.
Equations
- decidable_of_iff' b h = decidable_of_decidable_of_iff (_ : b ↔ a)
Instances For
Equations
- Decidable.predToBool p = { coe := fun b => decide (p b) }
Prove that a
is decidable by constructing a boolean b
and a proof that b ↔ a
.
(This is sometimes taken as an alternate definition of decidability.)
Equations
- decidable_of_bool x x = match x, x with | true, h => isTrue (decidable_of_bool.proof_1 h) | false, h => isFalse (_ : ¬a)
Instances For
classical logic #
equality #
membership #
if-then-else #
miscellaneous #
Ex falso, the nondependent eliminator for the Empty
type.
Equations
- Empty.elim a = nomatch a
Instances For
Equations
Ex falso, the nondependent eliminator for the PEmpty
type.
Equations
- PEmpty.elim a = nomatch a
Instances For
Equations
Equations
- instInhabitedSort_1 = { default := PUnit }
Equations
- instInhabitedDefaultSortInstInhabitedSort_1 = { default := PUnit.unit }
If all points are equal to a given point x
, then α
is a subsingleton.