Jest to doskonała okazja, aby skorzystać z trybu interaktywnego Agda „s. To jest jak gra. Możesz także zrobić to ręcznie, ale to więcej pracy. Oto co zrobiłem:
f : {A B : Set} -> ((((A -> B) -> A) -> A) -> B) -> B
f x = ?
Goal: B
x : (((A -> B) -> A) -> A) -> B
Zasadniczo tylko ruch mamy stosuje x
, więc spróbujmy tego.
f : {A B : Set} -> ((((A -> B) -> A) -> A) -> B) -> B
f x = x ?
Goal: ((A -> B) -> A) -> A
x : (((A -> B) -> A) -> A) -> B
Teraz naszym celem jest typ funkcji, więc spróbujmy lambda.
f : {A B : Set} -> ((((A -> B) -> A) -> A) -> B) -> B
f x = x (\y -> ?)
Goal: A
x : (((A -> B) -> A) -> A) -> B
y : (A -> B) -> A
Musimy A
i y
może dać go do nas, jeśli dostarczenie jej prawego argumentu. Nie wiesz, co to znaczy jeszcze, ale y
jest naszym najlepszym:
f : {A B : Set} -> ((((A -> B) -> A) -> A) -> B) -> B
f x = x (\y -> y ?)
Goal: A -> B
x : (((A -> B) -> A) -> A) -> B
y : (A -> B) -> A
Naszym celem jest typem funkcja więc użyjmy lambda.
f : {A B : Set} -> ((((A -> B) -> A) -> A) -> B) -> B
f x = x (\y -> y (\z -> ?))
Goal: B
x : (((A -> B) -> A) -> A) -> B
y : (A -> B) -> A
z : A
Teraz musimy B
, a jedyną rzeczą, która może dać nam B
jest x
, więc spróbujmy jeszcze raz.
f : {A B : Set} -> ((((A -> B) -> A) -> A) -> B) -> B
f x = x (\y -> y (\z -> x ?))
Goal: ((A -> B) -> A) -> A
x : (((A -> B) -> A) -> A) -> B
y : (A -> B) -> A
z : A
Teraz naszym celem jest rodzajem funkcji powrocie A
, ale mamy z
który jest A
więc nie trzeba użyć argumentu. Zignorujemy go i wrócimy na numer z
.
f : {A B : Set} -> ((((A -> B) -> A) -> A) -> B) -> B
f x = x (\y -> y (\z -> x (\_ -> z)))
I gotowe!
To skomplikowany problem. Intuicystyczny rachunek sumy LJ i związane z nim wyniki odgrywają kluczową rolę w jego "standardowym" rozwiązaniu. Narzędzie Djinn jest "znaną" implementacją wyszukiwania dowodu w tym systemie (mniej więcej), a izomorfizm Curry-Howarda pozwala przedstawić te dowody jako terminy lambda. – chi
Co więcej, nie ma czegoś takiego jak "przekształcenie" formuły w wyrażenie lambda.Oznaczałoby to "konwersję" twierdzeń na ich dowody, co jest nonsensem - twierdzenia przyznają ogólnie wiele różnych dowodów. W najlepszym razie możesz wykonać wyszukiwanie dowodu, w którym szukasz jednego takiego dowodu. – chi
Dziękujemy za wyjaśnienia. Naprawdę cieszę się z bardzo przydatnych informacji w krótkim czasie. –