Załóżmy, że mamy prosty język, który składa się z terminów:
- jeśli są warunkami, to podobnie jest zi f
Załóżmy teraz następujące logiczne reguły oceny:
Załóżmy, że dodajemy również następującą funky zasadę:
Dla tego prostego języka z podanymi zasadami oceny chcę udowodnić, co następuje:
Twierdzenie: Jeśli i to istnieje pewien termin taki, że i .r → t u s → u t → u
Udowadniam to przez indukcję na strukturze . Oto mój dowód, jak dotąd, wszystko poszło dobrze, ale utknąłem w ostatniej sprawie. Wydaje się, że indukcja struktury nie jest wystarczająca, czy ktoś może mi pomóc?r
Dowód. Indukując na , rozdzielimy wszystkie formy, które może przyjąć:r
- jest stałą, nic do udowodnienia, ponieważ normalna postać niczego nie ocenia.
- jeśli prawda, to inaczej . (a) oba pochodne wykonano zgodnie z zasadą E-IfTrue. W tym przypadku , więc nie ma nic do udowodnienia. (b) jedna pochodna została wykonana z zasadą E-IfTrue, a druga z zasadą E-Funny. Załóżmy, że zostało wykonane za pomocą E-IfTrue, drugi przypadek jest równoważnie udowodniony. Wiemy teraz, że . Wiemy również, że jeśli prawda, to inaczej i że istnieje pewna pochodna (przesłanka). Jeśli teraz wybierzemy , zakończymy sprawę.R 3 s = t r → y y = R 2 , T = R ' 2 R 3 R 2 → R ' 2 U = R ' 2
- jeśli fałsz, to inaczej . Równie udowodnione jak wyżej.r 3
- jeśli to inaczej z true lub false. (a) oba wyprowadzenia wykonano zgodnie z zasadą E-If. Teraz wiemy, że jeśli następnie inny i jeśli następnie inny . Wiemy również, że istnieją i (przesłanki). Możemy teraz użyć hipotezy indukcyjnej, aby powiedzieć, że istnieje jakiś termin taki, żeR 2 R 3 R 1 ≠ y = r ' 1 R 2 R 3 t = R " 1 R 2 R 3 R 1 → R ' 1 R 1 → R " 1 R ‴ 1 r " 1 → R ‴ 1i . Mamy teraz zakończyć sprawę mówiąc, jeśli następnie inny i zauważyć, że i przez E-IF reguły. (b) jedno wyprowadzenie zostało wykonane według zasady E-If, a drugie według zasady E-Funny.
Ten drugi przypadek, w którym jedno wyprowadzenie zostało wykonane przez E-If, a drugie przez E-Funny, to przypadek, którego mi brakuje ... Nie wydaje mi się, że mogę użyć hipotez.
Pomoc będzie mile widziana.
Odpowiedzi:
Okej, więc rozważmy przypadek, że , wyprowadzono stosując regułę E-If a jest uzyskany przez zastosowanie zasady E-Funny SO gdzie i gdzie .r=ift1thent2elset3 s t s=ift′1thent2elset3 t1→t′1 t=ift1thent′2elset3 t2→t′2
nas szukasz . wynika z reguły E-Funny i wynika z reguły E-If.u u=ift′1thent′2elset3 s→u t→u
źródło
Trochę terminologii może pomóc, jeśli chcesz to sprawdzić: te reguły przepisują reguły , nie mają one nic wspólnego z systemami typów¹. Właściwość, którą próbujesz udowodnić, nazywa się zbieżnością ; a dokładniej, jest to silne zbieżność : jeśli termin można skrócić na różne sposoby na jednym etapie, mogą one zbiegać się na następnym etapie. W ogólności, nie pozwala na zbiegu być dowolną liczbę etapów, a nie tylko: jeżeli i R → * t następnie jest U tak, że s → * u i t → * Ur→∗s r→∗t u s→∗u t→∗u - jeśli termin może zostać skrócony na różne sposoby, bez względu na to, jak daleko się rozeszli, mogą w końcu z powrotem się zjednoczyć.
Najlepszym sposobem na udowodnienie właściwości takich indukcyjnie określonych reguł przepisywania jest indukcja nad strukturą wyprowadzenia redukcji, a nie przez strukturę skróconego terminu. Tutaj albo działa, ponieważ reguły są zgodne ze strukturą terminu lewostronnego, ale rozumowanie reguł jest prostsze. Zamiast zagłębiać się w ten termin, bierzesz wszystkie pary zasad i widzisz, który termin może być lewą stroną dla obu. W tym przykładzie otrzymasz te same przypadki na końcu, ale nieco szybciej.
W przypadku, który powoduje problemy, jedna strona zmniejsza część „if”, a druga strona zmniejsza część „wtedy”. Nie ma nakładania się między dwiema zmieniającymi się częściami ( w [E-If], t 2 w [E-IfFunny]), i nie ma ograniczenia na t 2 w [E-If] lub t 1 w [E- IfFunny]. Więc jeśli masz termin, do którego odnoszą się obie zasady - który musi mieć formę i ft1 t2 t2 t1 , możesz zastosować reguły w dowolnej kolejności:ifr1thenr2elser3
¹ Czasami zobaczysz typy i przepisywanie razem, ale w ich istocie są to koncepcje ortogonalne.
źródło