2013-03-09 9 views
5

załóżmy chcę pokazać następujący lematDrop przesłankę w celu zastosowania w stylu

lemma "⟦ A; B; C ⟧ ⟹ D" 

mam cel

1. A ⟹ B ⟹ C ⟹ D 

Jednak nie muszę B. Jak mogę przenieść mój cel na coś jak

1. A ⟹ C ⟹ D 

Nie chcę zmieniać oryginalnego lemma oświadczenie, tylko aktualny cel w zastosować styl.

Odpowiedz

5

Co chcesz to apply (thin_tac B). Jednak ostatnim razem, kiedy to zrobiłem, Peter Lammich krzyczał "O Boże, dlaczego to robisz!" w obrzydzeniu i przepisałem mój dowód, żeby pozbyć się thin_tac. Tak więc użycie tej taktyki nie wydaje się być już zachęcane.

+1

Oto realistyczny przykład, który pokazuje, co dzieje się, gdy cały czas używasz 'thin_tac': http://afp.sourceforge.net/entries/Group-Ring-Module.shtml – Makarius

+3

Zauważ, że możesz również użyć wzorca wewnątrz' thin_tac': na przykład 'apply (thin_tac "? x ∧? y") "odrzuciłoby przesłankę' (1 + 1 = 2) ∧ (2 + 2 = 4) '. Może to pomóc w zmniejszeniu liczby pisania/duplikowania w skryptach sprawdzających. – davidg

5

Zwykle lepiej unikać niepożądanych rzeczy w stanie docelowym, zamiast usuwać je później. Sposób, w jaki formułujesz problem dowodowy, wpływa na sposób jego rozwiązania.

Jest to szczególnie ważne w przypadku dowodów strukturyzowanych: odwołać pozytywnie do tych faktów, które powinny uczestniczyć w następnym kroku dowodu, zamiast tłumienia niektóre z nich negatywnie.

E.g. tak:

from `A` and `C` have D ... 

Opowiadanie, które fakty są istotne dla dowodu, jest już początkiem czytelności.

następstwie tego stylu, początkowy problem będzie wyglądać następująco:

lemma 
    assumes A and B and C 
    shows D 
proof - 
    from `A` and `C` show D sorry 
qed 

lub jak to z ograniczonej gadatliwości, jeśli ABCD są duże propozycje:

lemma 
    assumes a: A and b: B and c: C 
    shows D 
proof - 
    from a c show ?thesis sorry 
qed 
+1

Czy takie "pozytywne odwołanie" można zrobić w skrypcie stylu stosowania? Początkowe założenia można oczywiście nazwać, ale co z założeniami pośrednimi? – davidg

+3

Jeśli nalegasz na użycie jednego dużego skryptu do zastosowania, aby uzyskać dowód, staje się to trudne. Ale dlaczego to robisz? Możesz łatwo stworzyć zewnętrzną strukturę w odpowiednim Isarze i zniszczyć w kierunku stosowania skryptów tylko w pozycjach liści, jeśli w ogóle. – Makarius