Enumerations over paths #
In this file, we provide extra features to Enumeration
s that take values of the form α ↝ ⊥ × X
.
Main declarations #
ConNF.Enumeration.ext_path
: An extensionality principle for suchEnumeration
s.
A helper function for making relations with domain and codomain of the form α ↝ ⊥ × X
by defining it on each branch.
Equations
- ConNF.Enumeration.relWithPath f x y = (x.1 = y.1 ∧ f x.1 x.2 y.2)
Instances For
theorem
ConNF.Enumeration.relWithPath_coinjective
[Params]
{X Y : Type u}
{α : TypeIndex}
{f : α ↝ ⊥ → Rel X Y}
(hf : ∀ (A : α ↝ ⊥), (f A).Coinjective)
:
instance
ConNF.Enumeration.instDerivativeProdPathBotTypeIndex
[Params]
(X : Type u)
(α β : TypeIndex)
:
Derivative (Enumeration (α ↝ ⊥ × X)) (Enumeration (β ↝ ⊥ × X)) α β
instance
ConNF.Enumeration.instCoderivativeProdPathBotTypeIndex
[Params]
(X : Type u)
(α β : TypeIndex)
:
Coderivative (Enumeration (β ↝ ⊥ × X)) (Enumeration (α ↝ ⊥ × X)) α β
instance
ConNF.Enumeration.instBotDerivativeProdPathBotTypeIndex
[Params]
(X : Type u)
(α : TypeIndex)
:
BotDerivative (Enumeration (α ↝ ⊥ × X)) (Enumeration X) α
Equations
- ConNF.Enumeration.instBotDerivativeProdPathBotTypeIndex X α = ConNF.BotDerivative.mk (fun (E : ConNF.Enumeration (α ↝ ⊥ × X)) (A : α ↝ ⊥) => E.invImage (fun (x : X) => (A, x)) ⋯) ⋯