Właśnie zaczynam grać z idrisem i dowodzeniem twierdzeń w ogóle. Mogę śledzić większość przykładów dowodów podstawowych faktów w Internecie, więc chciałem spróbować czegoś samowolnego. Tak, chcę napisać próbny termin na następny podstawowych właściwości mapy:Wykazać id mapy = id w idris?
map : (a -> b) -> List a -> List b
prf : map id = id
Intuicyjnie, mogę sobie wyobrazić, jak dowód powinno działać: Weźmy dowolny lista L i analizować możliwości Map ID l. Kiedy l jest puste, to oczywiste; kiedy l nie jest pusta, opiera się na koncepcji, że aplikacja funkcjonalna zachowuje równość. Tak, mogę zrobić coś takiego:
prf' : (l : List a) -> map id l = id l
To jak dla całego rachunku. Jak mogę go przekształcić w dowód równości zaangażowanych funkcji?
@BrianMcKenna: opisujesz, w jaki sposób udowodnić "prf", o którym PO już napisał, że potrafi pisać. Jego pytanie dotyczy możliwości podniesienia "prf" do równości ekstensjonalnej. – Cactus