Euklides, 200 f. Kr. Objektorienterad modellering och diskreta strukturer / design Predikatlogik Theorem ∀n . ∃p . prime(p) ∧ p > n Lennart Andersson Reviderad 2010–09–27 2010 OMD 2010 F9-1 Aktivitet OMD 2010 F9-2 Aktivitet Skriv ett uttryck som säger att 1. heltalet i är jämt. Använd ∃, ∗ och = men inte divisions- eller restoperator. Solution ∃n ∈ Z . i = 2n Ibland måste man själv förstå att det behövs kvantorer. Skriv ett uttryck som säger att summan av två heltal är alltid densamma oberoende av i vilken ordning operanderna tages. Solution 2. för alla heltal så är kvadraten på talet är större än eller lika med talet. ∀n . ∀m . n + m = m + n Solution ∀n ∈ Z . n2 ≥ n OMD 2010 F9-3 OMD 2010 F9-4 Från matten Predikatlogik I kursen ’Analys i en variabel’ finns följande definition. Låt f vara en funktion och antag att varje omgivning av punkten a innehåller punkter ur Df . Då säges f ha gränsvärdet A då x går mot a om det till varje tal > 0 finns ett tal δ = δ() > 0 sådant att |x − a| < δ ⇒ |f (x) − A| < . x ∈ Df (∀x . P(x)) (∃x . P(x)) för alla x gäller P(x) det finns ett x så att P(x) Skriv ett predikatlogiskt uttryck som är sant precis när f har gränsvärdet A då x går mot a. Solution ∀ ∈ R+ . (∃δ ∈ R+ . (∀x ∈ Df . |x − a| < δ → |f (x) − A| < )) OMD 2010 F9-5 Exempel OMD 2010 F9-6 Aktivitet Låt x och y vara vektorer med lika många element. Formulera med predikatlogik 1. Alla värden som finns i x finns också i y . Vad betyder Solution ∀i . ∃j . xi = yj ∀i . xi ≤ xi+1 2. Varje element i x är mindre än motsvarande element i y . ∀i . ∀j . i = j ∨ xi 6= xj Solution ∃i . ∀j . i 6= j → xi < xj ∀i . xi < yi ∀i . xi = yi 3. Alla element i x är mindre än varje element i y . Solution ∀i . ∀j . xi < yj 4. Det största elementet i x är mindre än det minsta elementet i y. OMD 2010 F9-7 OMD 2010 F9-8 Bundna variabler Exempel prime(p) ∧ p > n Definition Förekomsten av en variabel v i ett uttryck F är bunden om F innehåller ett uttryck på formen ∀v . G eller ∃v . G och förekomsten av v finns i denna form. En förekomst av en variabel som inte är bunden säges vara fri. ∃p . prime(p) ∧ p > n (∃p . prime(p)) ∧ p > n ∀n . ∃p . prime(p) ∧ p > n OMD 2010 F9-9 Aktivitet OMD 2010 F9-10 Fermat-tal Markera fria förekomster av variabler i n ∀n ∈ {1, 2, 3, 4} . prime(22 + 1) = (∀n . n > 0) ∨ (n = 0) 1 2 3 4 prime(22 + 1) ∧ prime(22 + 1) ∧ prime(22 + 1) ∧ prime(22 + 1) OMD 2010 F9-11 OMD 2010 F9-12 Substitution Substitution i aritmetiska uttryck e och t är uttryck x är en variabel Om n är en numerisk literal n[x\t] M = n e[x\t] Om ett uttryck bara består av en variabel, v , har vi två fall v [x\t] v [x\t] är det uttryck man får när man i e ersätter alla fria förekomster av x med t OMD 2010 F9-13 Substitution i sammansatta aritmetiska uttryck (e1 − e2 )[x\t] (e1 · e2 )[x\t] (e1 /e2 )[x\t] OMD 2010 M = M = M = M = M = t om v och x är samma variabel v om v och x är olika variabler OMD 2010 F9-14 Aktivitet Högerleden i de fyra sista definitionerna av substitution tillåter två tolkningar beträffande hur mycket som skall utsättas för den sista substitutionen. Sätt ut parenteser så att det inte råder någon tvekan i (e1 [x\t] + e2 [x\t]) De återstående fallen handlar om sammansatta uttryck. (e1 + e2 )[x\t] M = (e1 [x\t] + e2 [x\t]) (e1 [x\t] − e2 [x\t]) (e1 [x\t] · e2 [x\t]) Vilken precedens skall substitutionsoperatorn ha relativt de aritmetiska operatorerna för att man skall kunna utelämna parenteserna i högerledet? (e1 [x\t]/e2 [x\t]) F9-15 OMD 2010 F9-16 Stora”∧ och ∨ Aktivitet Utför substitutionerna n ^ (x · x)[x\x + 1] = i=1 n _ (y · x)[x\y + 1] = (x · x)[x\x + 1][x\x + 1] = OMD 2010 i=1 F9-17 Substitution i kvantifieringar M Pi = Pi = M P1 ∧ · · · ∧ Pn = ∀i ∈ {1, . . . , n} . Pi P1 ∨ · · · ∨ Pn = ∃i ∈ {1, . . . , n} . Pi OMD 2010 F9-18 Substitution med namnkollision om v och x är olika variabler och v inte är fri i t (∀v . P)[x\t] M = (∀v . P[x\t]) I det återstående fallet måste man byta namn på kvantifieringsvariabeln till ett nytt namn, z, som inte förekommer i P innan man kan substituera in t. (∀v . P)[x\t] om v och x är samma variabel (∀v . P)[x\t] OMD 2010 M = M = (∀z . ((P[v \z])[x\t])) (∀v . P) F9-19 OMD 2010 F9-20 Inferensregler P[x\t] ∀x . P P[x\t] P ∀x . P ∃x . P [E∀ ] OMD 2010 Q Q F9-21 Räknelagar OMD 2010 [E∃ ] F9-22 de Morgans lagar ∀x . P ∧ Q = (∀x . P) ∧ (∀x . Q) ∀x . ∀y . P = ∀y . ∀x . P OMD 2010 [P[x\a]] .. . ∃x . P [I∀ ] [I∃ ] ¬∀x . P = ∃x . ¬P ¬∃x . P = ∀x . ¬P F9-23 OMD 2010 F9-24