It's known that Nat-ind = Nat-rec ⨯ Nat-initiality
Has someone figured out how to define a suitable Conat-coind
such that Conat-coind = Conat-corec ⨯ Conat-finality
?
It it a plausible thing to do?
Do we need some notion of co-dependent types
?
EDIT:
Here are the definitions of Nat-ind
, Nat-rec
, Nat-initiality
:
Nat-ind ≔ (ind : (A : ℕ → 𝕌) (a₀ : A 0) (a₁ : (x : ℕ) → A x → A (S x)) (x : ℕ) → A x)
⨯ (ind-0 : (A : ℕ → 𝕌) (a₀ : A 0) (a₁ : (x : ℕ) → A x → A (S x)) → ind A a₀ a₁ 0 ≡ a₀)
⨯ (ind-1 : (A : ℕ → 𝕌) (a₀ : A 0) (a₁ : (x : ℕ) → A x → A (S x)) (x : ℕ)
→
ind A a₀ a₁ (S x) ≡ a₁ x (ind A a₀ a₁ x)
)
⨯ ()
Nat-rec ≔ (rec : (A : 𝕌) (a₀ : A) (a₁ : A → A) → (ℕ → A))
⨯ (rec-0 : (A : 𝕌) (a₀ : A) (a₁ : A → A) → rec A a₀ a₁ 0 ≡ a₀)
⨯ (rec-1 : (A : 𝕌) (a₀ : A) (a₁ : A → A) (x : ℕ) → rec A a₀ a₁ (S x) ≡ a₁ (rec A a₀ a₁ x))
⨯ ()
Nat-initiality : (A : 𝕌) (a₀ : A) (a₁ : A → A) (f : ℕ → A)
(f-0 : f 0 ≡ a₀)
(f-1 : (x : ℕ) → f (S x) ≡ a₁ (f x))
→
f ≡ rec A a₀ a₁
By this Nat-ind = Nat-rec ⨯ Nat-initiality
I, of course, mean isomorphism/equivalence:
Nat-ind ≃ Nat-rec ⨯ Nat-initiality
So paraphrasing my original question:
is it possible to come up with such a type Conat-coind
(a co-induction principle) such that
Conat-coind ≃ Conat-corec ⨯ Conat-finality
.
Of course there is the trivial identity-equivalence solution. But that's not what I am looking for.
Nat-rec
andNat-ind
? And I think proofassistants.stackexchange.com/questions/2209/… answers your question (corec
isana
andcoind
is the bisimulation principle) but since you're the one who asked it I may be misunderstanding what you mean. $\endgroup$Nat-XXX
$\endgroup$