Bevezetés a számítási logikába
Eredeti cikk: https://www.cs.cornell.edu/gries/Logic/Calculational.html
A kalkulációs propozíciós logika az algoritmusok formális fejlesztésének területén kutató kutatók terméke. (Kattintson ide a rövid előzményekért.) A C hang és teljes. A bizonyításokban a hangsúly az egyenlők egyenlőkkel való helyettesítésén van a modus ponens helyett. Az egyenlőség vagy az ekvivalencia fontos szerepet tölt be ahelyett, hogy kicsit játékos lenne, mint a legtöbb propozíciós logikában.
Az & kötőszót használjuk , | diszjunkcióra, és ~ tagadására (nem).
A mi jelölésünkben a b = c egyenlőséget jelöl az azonos típusú b és c esetén, míg a b == c vagy ekvivalencia csak a logikai típusú b és c esetén van definiálva. Boolean típusú b és c esetén a b = c és a b == c jelentése ugyanaz.
Az egyik oka annak, hogy a logikai értékekkel szemben két egyenlőséget jelző szimbólum van, az az, hogy az egyenlőséget = általában úgy tekintik, mint kötőszó :
b = c = d a b = c és c = d rövidítése
míg a b == c asszociatívan használható , ami nagyon fontos számunkra:
b == c == d egyenlő b == (c == d) és (b == c) == d értékkel.
Az alábbiakban egy tipikus bizonyítást mutatunk be a számítási logikában. A sorszámok csak későbbi megbeszélés céljából jelennek meg. Ezt a példát azért választottuk, mert egyszerű, de bemutatja a formális bizonyítási rendszer minden aspektusát (amint azt később tárgyaljuk). A tételszámok A diszkrét matematika logikai megközelítése tételekre vonatkoznak . Az operátorok asszociativitását és szimmetriáját átláthatóan kezeljük, említés nélkül; ez a bemutatandó tételek számának nagymértékű csökkenését eredményezi, és leegyszerűsíti a manipulációt. Végezetül vegye figyelembe, hogy a stílus csak a középiskolai algebrában használt számítási stílus formalizálása, és valóban sok tudós munkája során – ezért olyan hasznos a stílus.
Itt van a ~p == p == false bizonyítéka.
(0) ~p == p == hamis
(1) = < (3.9), ~(p == q) == ~p == q , q:= p >
(2) ~(p == p ) == hamis
(3) = < == (3.9) azonossága , q:= p >
(4) ~igaz == hamis ---(3.8)
A számítási logika következtetési szabályai
Íme a C logika négy következtetési szabálya . (P[x:= E] az E kifejezés szöveges helyettesítését jelöli az x változóval a P kifejezésben):
- Behelyettesítés: Ha P tétel, akkor P[x:= E] is: |- P ---> |- P[x:= E]
- Leibniz: Ha P = Q tétel, akkor az E[x:= P] = E[x:= Q] is: |- P = Q ---> |- E[x:= P] = E[x:= Q]
- Tranzitivitás: Ha P = Q és Q = R tételek, akkor P = R is: |- P = Q, |- Q = R ---> |- P = R
- Egyenlőség: Ha P és P == Q tételek, akkor Q is az: |- P, |- P == Q ---> |- Q
A bizonyítási formátum magyarázata
Elmagyarázzuk, hogyan használják a négy következtetési szabályt a bizonyításokban, a ~p == p == false bizonyításával .
(0) ~p == p == hamis
(1) = < (3,9), ~(p == q) == ~p == q , q:= p >
(2) ~(p == p) == hamis
(3) = < == azonossága (3.9), q:= p >
(4) ~igaz == hamis ---(3,8)
Először is, a (0)-(2) sorok a Leibniz következtetési szabály használatát mutatják:
(0) = (2)
Leibniz következtetése, és a ~(p == p) == ~p == p premisszája az (1) vonalon van megadva. Ugyanígy a (2)-(4) egyenesek egyenlőségét Leibniz segítségével igazoljuk.
Az (1) sorban található „tipp” feltehetően Leibniz premisszáját adja, megmutatva, hogy az egyenlők egyenlő helyett milyen helyettesítést használnak. Ez az előfeltevés a (3.9) tétel p:= q behelyettesítéssel, azaz
(~(p == q) == ~p == q)[p:=q]
Ez azt mutatja meg, hogyan használják a következtetési szabályt a Helyettesítés a tippekben.
A (0) = (2) és (2) = (4) alapján a Tranzitivitás következtetési szabályával arra következtetünk, hogy (0) = (4). Ez megmutatja, hogyan használják a tranzitivitást.
Végül vegye figyelembe, hogy a (4) sor, ~igaz == hamis, egy tétel, amint azt a jobb oldali utalás jelzi. Ezért az Egyenlőség következtetési szabályával arra a következtetésre jutunk, hogy a (0) egyenes is egy tétel. És (0) ezt akartuk bizonyítani.
Ennek a bizonyítási formátumnak számos előnye van.
- Az egyes következtetési szabályok használatát a bizonyítási formátum határozza meg, így a következtetési szabályok nevét nem kell megemlíteni. Ez csökkenti az olvasás és az írás mennyiségét a bizonyításban.
- A bizonyítás teljesen szigorú, de bonyolultság nélkül elsöprő. Ezenkívül a bizonyítás elég egyszerű ahhoz, hogy a tanulók megértsék. Valójában formalizálja a középiskolában tanított számítási stílust.
- Általában kevés a képletek egyik sorból a másikba másolása – ez a Hilbert-stílusú bizonyítások egyik hátránya.
- Ezzel a formátummal hasznos bizonyítási elvek és stratégiák taníthatók.
- A bizonyítás előre és hátra is olvasható.