вместе с правилами enc dec = id и dec enc = id.
enc . dev = id
and dec . enc = id
, I suppose?
Pi_Beta (A:U)(B:A->U)(f: Pi A B) : Path (Pi A B) (\(x:A) -> f x) f
Why is the eta rule for (->)
called Pi_Beta
?
протащили в путь:
Path (B a) -> Path (Pi A B)
.
This is a type error.
потом попробуем закодировать самый базовый Пи-тип на котором строится вся теория MLTT, и докажем вторую часть задания. <...>
PiType (A: U) (B: A -> U): isIso (Pi A B) (Pi A B) = (app A B,lam A B,Pi_Beta A B,Pi_Eta A B) Pi (A: U) (B: A -> U) : U = (x:A) -> B(x) lam (A: U) (B: A -> U) (b: Pi A B) : Pi A B = \(x: A) -> b x app (A: U) (B: A -> U) (f: Pi A B) (a: A) : B a = f a Pi_Beta (A: U) (B: A -> U) (f: Pi A B) : Path (Pi A B) (\(x:A) -> f x) f Pi_Eta (A: U) (B: A -> U) (f: Pi A B) : Path (Pi A B) f (\(x:A) -> f x)
You "encode" Pi by aliasing the built-in (->)
(not even fully, because the type of B
still contains (->)
) and then proceed with proving that Pi A B
is isomorphic to Pi A B
which it of course is, because it's just the same type, which is fine, because we can have non-trivial isomorphism between A
and A
(like the isomorphism induced by not : Bool -> Bool
), but your isomorphism is the trivial one (i.e. the one induced by id : A -> A
):
lam (A: U) (B: A -> U) (b: Pi A B) : Pi A B = \(x: A) -> b x app (A: U) (B: A -> U) (f: Pi A B) (a: A) : B a = f a
This doesn't show us anything apart from the fact that binding a variable in a telescope is the same thing as binding a variable via lambda which is not a very interesting property. This example doesn't even show that you have the eta-conversion rule, because both lam
and app
bind f
and a
and apply f
to a
(only lam
calls f
b
). You could at least make it
lam (A: U) (B: A -> U) (b: Pi A B) : Pi A B = b app (A: U) (B: A -> U) (f: Pi A B) (a: A) : B a = f a
There is also a question of why lam
is called the way it is.
This part:
во-вторых, покажем, что в кодировке Пи у нас функция равна своей аппликации (да да, вам не послышалось). Теперь докажем вторую задачу и главный номер представления (то, что функция равна своей аппликации, ну бредятина же на звук!):
is just a really ambiguous wording. It sounds like you would prove either f = f x
(which is nonsense) or f = app f
(which is fine), but you do neither of these things and instead prove something trivial about the way you handle telescopes.
Post mortem: http://tonpa.guru/stream/2019/2019-01-06 Послание хейтерам.htm
Поскольку мне неохота продолжать эту дискуссию, я просто поговорю сам с собой тут.
"Русскоязычный исследователь теории типов" тоже звучит довольно почтенно. Но я не почтенный исследователь теории типов и могу себе позволить заниматься херней. Нацизм свой оставь при себе, на форчане ты подобного поведения найдешь предостаточно, и оно не обязательно коррелирует с умственным развитием и родом деятельности.
Личность не имеет значения, у меня там вверху нигде никакого ad hominem нет, только возражения по делу. Возражения могут быть неверными (я считаю их верными), но к "хейтингу" это никакого отношения не имеет. При этом я ссылаюсь на статьи, именитых ученых и привожу куски кода -- все в меру своих возможностей. А ты обвиняешь меня в троллинге, называешь мои выкладки bullshit, трешь мои посты и поливаешь грязью в твиттере. Это нездоровое поведение.
Я не ученый.
∃₂ λ A P -> ∀ x -> TrueSigma A P ≢ FalseSigma A P x
, где≢
-- это прям обычное пропозициональное неравенство. Но это неточно. Но если интересно, могу попробовать.Мне прям даже любопытно, где я провалил тест в дискуссии вверху, после которой ты меня забанил в твиттере и на гитхабе.