Reference · Logic
rainbow.math.logic.finset
Extensional bundled finite sets as native Clojure proof data.
finset/Finset
finset/Finset.{u} :
(A : Type u)
→ Type ufinset/to-set
finset/to-set.{u} :
(A : Type u) (source : finset/Finset A)
→ set/Set Afinset/finite-evidence
finset/finite-evidence.{u} :
(A : Type u) (source : finset/Finset A)
→ set/finite A (finset/to-set A source)finset/empty
finset/empty.{u} :
(A : Type u)
→ finset/Finset Afinset/subset
finset/subset.{u} :
(A : Type u) (x₁ x₂ : finset/Finset A)
→ Propfinset/nonempty
finset/nonempty.{u} :
(A : Type u) (x₁ : finset/Finset A)
→ Propfinset/singleton
finset/singleton.{u} :
(A : Type u) (x₁ : A)
→ finset/Finset Afinset/subset-reflexive-explicit
finset/subset-reflexive-explicit.{u} :
(A : Type u) (source : finset/Finset A)
→ finset/subset A source sourcefinset/subset-reflexive-implicit
finset/subset-reflexive-implicit.{u} :
(A : Type u) (source : finset/Finset A)
→ finset/subset A source sourcefinset/empty-subset
finset/empty-subset.{u} :
(A : Type u) (source : finset/Finset A)
→ finset/subset A (finset/empty A) sourcefinset/empty-not-nonempty
finset/empty-not-nonempty.{u} :
(A : Type u) (x₁ : finset/nonempty A (finset/empty A))
→ proposition/falsityfinset/empty-nonempty-proposition-equality
finset/empty-nonempty-proposition-equality.{u} :
(A : Type u)
→ finset/nonempty A (finset/empty A) = proposition/falsity= = equality/Eq
finset/singleton-nonempty
finset/singleton-nonempty.{u} :
(A : Type u) (selected : A)
→ finset/nonempty A (finset/singleton A selected)finset/nonempty-to-type
finset/nonempty-to-type.{u} :
(A : Type u) (source : finset/Finset A) (inhabited : finset/nonempty A source)
→ proposition/nonempty Afinset/extensional
finset/extensional.{u} :
(A : Type u) (left right : finset/Finset A)
(pointwise : ∀ (value : A), proposition/conjunction (finset/to-set A left value → finset/to-set A right value) (finset/to-set A right value → finset/to-set A left value))
→ left = right= = equality/Eq
finset/eq-empty-or-nonempty
finset/eq-empty-or-nonempty.{u} :
(A : Type u) (source : finset/Finset A)
→ proposition/disjunction (source = finset/empty A) (finset/nonempty A source)= = equality/Eq
finset/nonempty-not-equal-empty
finset/nonempty-not-equal-empty.{u} :
(A : Type u) (source : finset/Finset A) (inhabited : finset/nonempty A source)
(h₁ : source = finset/empty A)
→ proposition/falsity= = equality/Eq
finset/nonempty-of-not-equal-empty
finset/nonempty-of-not-equal-empty.{u} :
(A : Type u) (source : finset/Finset A)
(not-empty : source = finset/empty A → proposition/falsity)
→ finset/nonempty A source= = equality/Eq
finset/nonempty-equivalent-not-empty
finset/nonempty-equivalent-not-empty.{u} :
(A : Type u) (source : finset/Finset A)
→ proposition/conjunction (finset/nonempty A source → source = finset/empty A → proposition/falsity) ((source = finset/empty A → proposition/falsity) → finset/nonempty A source)= = equality/Eq
finset/is-empty-of-all-empty
finset/is-empty-of-all-empty.{u} :
(A : Type u)
(all-empty : ∀ (source : finset/Finset A), source = finset/empty A)
→ proposition/is-empty A= = equality/Eq
finset/singleton-injective
finset/singleton-injective.{u} :
(A : Type u) (left right : A)
(same-image : (fun value => finset/singleton A value) left = (fun value => finset/singleton A value) right)
→ left = right= = equality/Eq