:thinking_face:.oO(定理証明器関係のchannelも作ろうかな...)
≅-elim
が JMeq_eq
(このコードでの ≅→≡
) を仮定しただけでは証明できず、 eq_JMeq
(このコードでの ≡→≅
。公理なしで証明可能) が JMeq_eq
の左逆射になることを仮定する必要があるっぽいなど、色々面白いことが分かりましたInductive JMeq (A : Type) (a : A) : forall B : Type, B -> Type := | JMeq_refl : JMeq A a A a .
どんな時でも型がちゃんと付いておかしなことにならないことを証明した?のことですかね。
<
a freeC
-object onx
consists of an objecty ∈ C
together with a morphismη : x -> U y
inD
there exists a uniqueg : y -> z
for everyf : x -> U z ∈ C
f
, the Free f
is the y
, and the C
is the category of monads, and D
is the category of endofunctors, U is the forgeful functor simply forgetting the identity and the composition of monad.x
and η : x -> U(Free f)
?x
can be the identity functor, and η
is just the identity natrual transformation of Free f
monad, is that right?x
and η
?x
and η
?η
が identity natrual transformation だとすると x
は U(Free f)
では?Free x と η: x -> U (Free x) からなる組
data Free f a = Impure (f (Free f a)) | Pure a
liftF :: x a -> Free x a liftF = Impure . fmap Pure
x
は Free f
の f なら η : f -> Free f
の方がidentity よりよっぽど意味があると思う。identity functor
はHaskellのIdentityではなく、本物のIdentityの方。つまり type I a = a
の方、残念だがHaskellにはこれを定義してもinstanceを定義できないg : y -> z
for every f : x -> U z ∈ C
の g を f から構成するのがg = foldFree f
f: a → b
, g: b → c
, h: a → c
が存在したからと言って、 h
が f
, g
の合成射とは限らないですが、2つの射 f
, g
の作用や関係性を合成射 g ⚬ f
は1つで表すとするわけですよね?合成射は、合成元の射それぞれ (がたどる経路) と可換
とならないような合成射って考えることができるんでしょうか? (もし考えることができるのであれば、可換性は公理として必要なくなるなと)h ⚬ (g ⚬ f)
であれば、 h
, g
, f
) に分解できるh
, g
, f
から構成できる (h ⚬ g) ⚬ f)
) は、可換性により等しいh ⚬ (g ⚬ f)
であれば、 h
, ( g
, f
)と必ず括弧を付ける必要があるのではと(この分解後、括弧の付け替えを許すのが結合律です)((\x -> x + 1) . (\x -> x + 2))
と (\x -> x + 3)
が等しいってどうして言えるの?みたいな疑念はあると思うんですよね