ExistsUnique #
This file defines the ExistsUnique predicate, notated as ∃!, and proves some of its
basic properties.
For p : α → Prop, ExistsUnique p means that there exists a unique x : α with p x.
Instances For
Checks to see that xs has only one binder.
Equations
- One or more equations did not get rendered due to their size.
Instances For
∃! x : α, p x means that there exists a unique x in α such that p x.
This is notation for ExistsUnique (fun (x : α) ↦ p x).
This notation does not allow multiple binders like ∃! (x : α) (y : β), p x y
as a shorthand for ∃! (x : α), ∃! (y : β), p x y since it is liable to be misunderstood.
Often, the intended meaning is instead ∃! q : α × β, p q.1 q.2.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pretty-printing for ExistsUnique, following the same pattern as pretty printing for Exists.
However, it does not merge binders.
Equations
- One or more equations did not get rendered due to their size.
Instances For
∃! x ∈ s, p x means ∃! x, x ∈ s ∧ p x, which is to say that there exists a unique x ∈ s
such that p x.
Similarly, notations such as ∃! x ≤ n, p n are supported,
using any relation defined using the binder_predicate command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The difference with existsUnique_eq is that the equality is reversed.
This invokes the two Decidable arguments $O(n)$ times.
Equations
- One or more equations did not get rendered due to their size.
- List.decidableBExistsUnique p [] = isFalse ⋯