Lyhyt MathCheck-ohje (uuteen välilehteen)
Tässä tehtävässä harjoitellaan kvanttoreita sisältävien kaavojen tulkitsemista ja kirjoittamistakin. Samalla tulee kerrattua joitakin käsitteitä.
Alla on lueteltu predikaatteja aihepiirettäin ryhmiteltynä ja niiden jälkeen on vastausruutuja ja sanallisia ilmauksia. Vastaa antamalla sen predikaatin edessä oleva kirjain, joka parhaiten täsmää sanalliseen kuvaukseen. Ensimmäinen kohta on annettu malliksi valmiiksi.
Reaalilukuja koskevia predikaatteja
(a) | ∀ x: ∀ y: ∀ z: (x + y) + z = x + (y + z) |
(b) | ∃ x: x2 = 3 |
(c) | ∀ x: ∀ y: ∀ z: x ≤ y ∧ z < 0 → xz ≥ yz |
(d) | ∀ x: ∃ y: y > x |
(e) | ∀ x: ∀ y: ∀ z: (x + y) + z = x + y + z |
(f) | (9 − 4) − 2 ≠ 9 − (4 − 2) |
(g) | ¬ ∃ x: x < x |
(h) | ∃ a: a < 0 ∧ ∃ b: b < a |
(i) | ∃ x: ∀ y: y2 ≠ x |
(j) | ∀ x: ∀ y: ∀ z: x < y ∧ y < z → x < z |
Luonnollisia lukuja koskevia predikaatteja
(k) | ∀ m: m ≥ 0 |
(l) | x > y ∧ ∀ z: z > y → z ≥ x |
(m) | n ≥ 2 ∧ ¬ ∃ k: ∃ h: h > 1 ∧ k > 1 ∧ n = hk |
(n) | ∃ c: a = bc |
(o) | ∃ c: b = ac |
(p) | ∀ x: ∀ y: x ≠ y → x2 ≠ y2 |
(q) | ∀ x: x + 1 ≠ 0 |
Funktiota f koskevia predikaatteja
(r) | ∀ x: ∀ y: x ≥ y → f(x) ≥ f(y) |
(s) | ∀ x: ∀ y: x < y → f(x) < f(y) |
(t) | ∃ x: f(x) = 0 ∧ ∀ y: x = y ∨ f(y) ≠ 0 |
(u) | ∃ x: ∃ y: f(x) = 0 ∧ f(y) = 0 ∧ x ≠ y |
Jonkin joukon alkioita koskevia predikaatteja
(v) | ∃ a: ∃ b: a ≠ b ∧ ∀ c: c = a ∨ c = b |
(w) | ∃ x: ∀ y: x ≥ y |
(x) | ∃ u: ∀ v: u = v |
(y) | ∀ y: x ≥ y |
Esitä seuraavat väittämät kaavoina.
TIEP1020-jänösalakielessä V on Väiski Vemmelsääri, p on porkkana ja x < y tarkoittaa ”x söi y:n”. Esitä seuraavat väittämät kaavoina. Koska jänömaailman ohjelmointi MathCheckiin on jäänyt tekemättä, seuraavien kohtien tarkastus perustuu moduloaritmetiikkaa käyttävään huijaukseen. Virheilmoitukset ovat siksi ilman vastaesimerkkejä ja tarkastus hyväksyy joitakin ihan vääriä kaavoja, kuten p > 0. Näistä pahoitteluni!
Väiski Vemmelsäären lisäksi on toinenkin jänö, nimittäin Noora Nopsajalka. Ovatko seuraavat päätelmät päteviä? Perustele.
Väiski Vemmelsääri söi porkkanan ⇔ joku jänö söi porkkanan VastausEi. Jos Noora söi porkkanan mutta Väiski ei syönyt, niin vasen puoli on epätosi mutta oikea tosi.
Väiski Vemmelsääri söi porkkanan ⇔ jänö x söi porkkanan VastausEi. Jos x:ksi valitaan Noora ja hän söi porkkanan mutta Väiski ei syönyt, niin vasen puoli on epätosi mutta oikea tosi. Yksikin valinta x:lle, jolla päätelmä ei päde, riittää. Se, että jollain muulla valinnalla molemmille puolille tulisi sama totuusarvo, ei pelasta asiaa.
Väiski Vemmelsääri söi porkkanan ⇔ jokainen jänö söi porkkanan VastausEi. Jos Väiski söi porkkanan mutta Noora ei syönyt, niin vasen puoli on tosi mutta oikea epätosi.
Joku jänö söi porkkanan ⇔ jänö x söi porkkanan VastausEi. Jos Väiski söi porkkanan mutta Noora ei syönyt, niin valinnalla x = Noora vasen puoli on tosi mutta oikea epätosi.
Joku jänö söi porkkanan ⇔ jokainen jänö söi porkkanan VastausEi. Jos Noora söi porkkanan mutta Väiski ei syönyt, niin vasen puoli on tosi mutta oikea epätosi.
Jänö x söi porkkanan ⇔ jokainen jänö söi porkkanan VastausEi. Jos Väiski söi porkkanan mutta Noora ei syönyt, niin valinnalla x = Väiski vasen puoli on tosi mutta oikea epätosi.
Huomaamme, että ”Väiski Vemmelsääri söi porkkanan”, ”Joku jänö söi porkkanan”, ”Jänö x söi porkkanan” ja ”Jokainen jänö söi porkkanan” tarkoittavat kaikki eri asiaa.
Väittämässä ”Jänö x söi porkkanan” x on vapaa muuttuja. Sille voi antaa eri arvoja kuten Noora ja Väiski. Kvanttorilla tyyliin ∀ x: tai ∃ x: luotu muuttuja ei ole vapaa, vaan sidottu. Kaavan käyttäjä ei voi antaa sille arvoa, vaan ∀ ikään kuin kokeilee jokaisen arvon ja ∃ antaa arvon.
Monella eri muuttujalla voi olla sama nimi. Esimerkiksi kaavassa (∃ y: y < x) ∧ (∃ y: y > x) on kolme muuttujaa, joista kahden nimi on y.
Luettele seuraavien kaavojen vapaat ja sidotut muuttujat. Tarvittaessa laita sama nimi samaan laatikkoon monesti. Erota muuttujat toisistaan ainakin yhdellä välilyönnillä. Muuttujien järjestyksellä ei ole väliä. Laatikko voi myös olla tyhjä.
Kaava on avoin, jos ja vain jos siinä on ainakin yksi vapaa muuttuja. Kaava on suljettu, jos ja vain jos se ei ole avoin.
1 |
0 |
Monivuotinen kokemukseni kahdesta yliopistosta osoittaa, että tässä on jotain mystisen vaikeaa. Jos tentissä pitää esittää helppo väittämä suljettuna kaavana, niin melkein jokainen käyttää ∀:a ja ∃:a oikein. Mutta jos muuten samaa asiaa kysytään niin, että jokin muuttuja pitää jättää vapaaksi, niin tulee paljon vääriä vastauksia, joissa on ylimääräinen ∀ tai ∃ sitomassa se.
Mysteeriä kasvattaa se, että vapaaksi jätettäviksi tarkoitettujen muuttujien nimet on yleensä sanottu kysymyksessä selkeästi. Kun posti ilmoittaa saapuneesta paketista, ilmoitus ei ole ”hae lähialueesi automaatin jostain lokerosta”, vaan ”hae osoitteessa Logiikkakatu 10 sijaitsevan ruokakaupan aulasta, lokerosta 7”. Aivan kuten paketin hakija tarvitsee tarkan tiedon, mistä paketin voi hakea, avoimen kaavan käyttäjä tarvitsee tarkan tiedon, minkänimisissä muuttujissa mikäkin lähtötieto esitetään. Siksi nimet yleensä kerrotaan kysymyksissä. Edellä oli monta esimerkkiä, mm. ”a saadaan b:stä kertomalla sopivasti valitulla luvulla”, ”Jokainen luku on pienempi kuin m” ja ”Jänö x söi porkkanan”.
Avoimen kaavan vapaat muuttujat ovat ikään kuin korvat, joiden kautta joitakin tietoja menee sisään ja vastaukseksi tulee totuusarvo. Samankaltainen idea on tuttu logiikan ulkopuolelta. Kelan opintotukilaskuri on vekotin, jonne syötetään tieto iästä, huollettavien alaikäisten lasten määrästä ym. ja vastaukseksi tulee opintotuen suuruus euroina kuukaudessa. Tulkki on henkilö, jonka korvien kautta menee sisään jokin viesti yhdellä kielellä ja suusta tulee ulos sama asiasisältö toisella kielellä.
Siis avoin kaava esittää funktion vapaiden muuttujiensa arvoyhdistelmistä totuusarvoille.
Funktioon jotain menee sisään, jotain tulee ulos, ja ulos tuleva määräytyy yksikäsitteisesti siitä, mikä meni sisään. On määritelty, minkälaisia ovat sisään menevät asiat (esimerkiksi jänön nimi ja syödyn kasvin laji) ja minkälaisia ulos tulevat (esimerkiksi totuusarvo). Jokaiselle sisään menevien arvojen yhdistelmälle on määritelty, mikä arvo tulee ulos. Funktio ei ole enempää eikä vähempää kuin tämä.
Tässä sanaa ”funktio” käytetään samassa merkityksessä kuin sitä käytetään matematiikassa. Älä hämäänny siitä, että moni ohjelmointikieli käyttää sanaa ”funktio” samankaltaisessa, mutta silti erilaisessa merkityksessä.
Mikä johtopäätös tästä kannattaa tehdä? VastausEdellä oleva asia kannattaa tehdä itselle selväksi. Kyse ei ole pelkästään siitä, testataanko sitä seuraavassa tentissä vai ei. Kyse on siitä, että ymmärtää funktion perusidean ja osaa soveltaa sitä. Matematiikka, tekniikka ja tietojenkäsittely ovat pullollaan funktioita sanan tässä merkityksessä. Opiskelua vaikeuttaa kovasti, jos ei tunnista funktiota kun sellainen kävelee vastaan.
Edellä todettiin, että suljetun kaavan totuusarvo on reaaliluvuilla vakio ”tosi” tai ”epätosi” (tai ”määrittelemätön”). Tämä pätee siksi, että reaalilukujen ominaisuudet ja reaalilukujen yhteydessä käytettyjen symbolien merkitykset on tarkasti määritelty. Sama ei päde Väiski Vemmelsäären jänömaailmaan: ei ole kerrottu, söikö Väiski porkkanan vai eikö syönyt.
On tärkeää tiedostaa, että kaavan totuusarvo riippuu sekä vapaiden muuttujien arvoista että muiden symbolien merkityksestä. Yleensä muiden symbolien merkitys ajatellaan kiinnitetyksi, vaikka ei välttämättä tunnetuksi. Siis on joko niin, että Väiski söi porkkanan taikka niin, että Väiski ei syönyt porkkanaa; mutta emme välttämättä tiedä, kumpi pätee. Tällöin avoin kaava esittää funktion vapaiden muuttujiensa arvoyhdistelmistä totuusarvoille, mutta emme välttämättä tiedä, minkä funktion.
Tämä tältä erää, palataan asiaan!