Set -Builder -merkintä - Set-builder notation

Kaikkien parillisten kokonaislukujen
joukko , joka ilmaistaan ​​joukkorakentajan merkinnöissä.

Vuonna joukko-opin ja sen sovellukset logiikka , matematiikka ja tietojenkäsittelytiede , set-rakentaja merkintätapa on matemaattinen kuvaamiseksi asettaa kokeilemalla sen osien tai ilmoittamalla ominaisuuksia, jotka sen jäsenten on täytettävä.

Joukkojen määrittäminen ominaisuuksien mukaan tunnetaan myös nimellä joukon ymmärtäminen , joukon abstraktio tai joukon aikeiden määrittäminen .

Joukot, jotka määritellään luetteloinnilla

Joukko voidaan kuvata suoraan kokeilemalla kaikki sen osat välillä kaarisulkujen, kuten Seuraavat kaksi esimerkkiä:

  • on joukko, joka sisältää neljä numeroa 3, 7, 15 ja 31, eikä mitään muuta.
  • on joukko, joka sisältää a , b ja c eikä mitään muuta (joukon elementtien välillä ei ole järjestystä).

Tätä kutsutaan joskus "luettelomenetelmäksi" joukon määrittämiseksi.

Kun halutaan ilmaisemaan joukko, joka sisältää osia säännöllisesti sekvenssi, rakennetaan ellipsin merkintää voidaan käyttää, kuten on esitetty seuraavissa esimerkeissä:

  • on joukko kokonaislukuja välillä 1-100.
  • on joukko luonnollisia numeroita .
  • on kaikkien kokonaislukujen joukko.

Joukon elementtien välillä ei ole järjestystä (tämä selittää ja vahvistaa viimeisen esimerkin yhtäläisyyden), mutta ellipsimerkinnällä käytämme järjestettyä sekvenssiä ennen (tai sen jälkeen) ellipsiä kätevänä merkintävälineenä selittämään, mitkä elementit ovat sarjassa. Sarjan ensimmäiset elementit näytetään, sitten ellipsit osoittavat, että yksinkertaisinta tulkintaa tulisi käyttää jakson jatkamiseen. Jos lopetusarvoa ei näy ellipsien oikealla puolella, järjestystä pidetään rajoittamattomana.

Yleensä tarkoittaa kaikkien luonnollisten numeroiden joukkoa siten, että . Toinen merkintä on hakasulku . Hieno erikoistapaus on , jossa se on yhtä kuin tyhjä sarja . Samoin tarkoittaa asetettu kaikkien varten .

Jokaisessa edellisessä esimerkissä kukin joukko kuvataan laskemalla sen elementit. Kaikkia sarjoja ei voida kuvata tällä tavalla, tai jos ne voivat, niiden luettelointi voi olla liian pitkä tai liian monimutkainen ollakseen hyödyllinen. Siksi monet joukot määritellään ominaisuudella, joka luonnehtii niiden elementtejä. Tämä karakterisointi voidaan tehdä epävirallisesti käyttämällä yleistä proosaa, kuten seuraavassa esimerkissä.

  • Pine Streetin osoitteet ovat Pine Streetin kaikkien osoitteiden joukko.

Proosamenetelmä voi kuitenkin olla epätarkka tai epäselvä. Näin ollen joukkorakentajan merkintää käytetään usein predikaatilla, joka luonnehtii määritettävän joukon elementtejä, kuten seuraavassa osassa kuvataan.

Predikaatin määrittämät joukot

Joukkorakentajan merkintätapaa voidaan käyttää kuvaamaan joukkoa, joka on määritelty predikaatilla , toisin sanoen loogisella kaavalla, joka arvioi joukon elementin tosiksi ja muuten epätosi . Tässä muodossa set-builder-merkintätapa koostuu kolmesta osasta: muuttuja, kaksoispiste tai pystysuora palkkierotin ja predikaatti. Erottimen vasemmalla puolella on siis muuttuja ja sen oikealla puolella on sääntö. Nämä kolme osaa ovat kiharoissa:

tai

Pystysuora palkki (tai kaksoispiste) on erotin, joka voidaan lukea " sellaisena ", "jolle" tai "ominaisuuden kanssa". Kaavan Φ ( x ) sanotaan olevan sääntö tai predikaatti . Kaikki x : n arvot, joita predikaatti pitää (on totta), kuuluvat määriteltävään joukkoon. Kaikki x : n arvot, joita predikaatti ei pidä, eivät kuulu joukkoon. Näin saadaan joukko kaikkia x: n arvoja, jotka täyttävät kaavan Φ . Se voi olla tyhjä joukko , jos mikään x: n arvo ei täytä kaavaa.

Verkkotunnuksen määrittäminen

Verkkotunnus E voi näkyä pystysuoran palkin vasemmalla puolella:

tai liittämällä sen predikaattiin:

∈ symboli tarkoittaa tässä asettaa jäsenyyden , kun taas symboli n loogista "ja" operaattori, joka tunnetaan nimellä loogiset yhteydessä . Tämä merkintä edustaa joukkoa kaikista x: n arvoista, jotka kuuluvat johonkin tiettyyn joukkoon E , jonka predikaatti on tosi (katso " Aseta olemassaolon aksiooma " alla). Jos on konjunktio , se kirjoitetaan joskus käyttämällä pilkkua symbolin sijasta .

Yleensä ei ole hyvä idea harkita joukkoja määrittelemättä aluetta, koska tämä edustaa kaikkien mahdollisten olemassa olevien asioiden osajoukkoa , joista predikaatti on totta. Tämä voi helposti johtaa ristiriitoihin ja paradokseihin. Esimerkiksi Russellin paradoksi osoittaa, että vaikka lauseke on näennäisesti hyvin muodostettu joukonrakentajalausekkeena, se ei voi määritellä joukkoa tuottamatta ristiriitaa.

Tapauksissa, joissa joukko E on selvä kontekstista, sitä ei ehkä ole nimenomaisesti määritelty. Kirjallisuudessa on tavallista, että tekijä ilmoittaa verkkotunnuksen etukäteen ja ei määritä sitä sitten joukkorakentajan merkinnöissä. Kirjoittaja voi esimerkiksi sanoa jotain, "Ellei toisin mainita, muuttujat on pidettävä luonnollisina numeroina.". Vaikka vähemmän muodollisissa yhteyksissä, joissa verkkotunnus voidaan olettaa, kirjallinen maininta on usein tarpeetonta.

Esimerkkejä

Seuraavat esimerkit havainnollistavat tiettyjä joukkoja, jotka määritellään joukkorakentajan notaation avulla predikaattien kautta. Kussakin tapauksessa verkkotunnus määritetään pystysuoran palkin vasemmalle puolelle ja sääntö oikealle puolelle.

  • on joukko kaikkia ehdottomasti positiivisia reaalilukuja , jotka voidaan kirjoittaa aikaväleillä muodossa .
  • on setti . Tämä joukko voidaan myös määritellä ; katso vastaavat predikaatit tuottavat yhtä suuret sarjat alla.
  • Kunkin kokonaisluku m , voimme määritellä . Esimerkkinä ja .
  • on reaalilukuparien joukko siten, että y on suurempi kuin 0 ja pienempi kuin f ( x ) tietylle funktiolle f . Tässä karteesinen tulo tarkoittaa joukkoa tilata paria todellinen määrä.
  • on kaikkien parillisten lukujen joukko . Merkki tarkoittaa "ja", joka tunnetaan nimellä loogiset yhteydessä . ∃ -merkki tarkoittaa "olemassa", jota kutsutaan eksistentiaaliseksi kvantifioimiseksi . Joten esimerkiksi lukee "on olemassa x sellainen, että P ( x )".
  • on merkintämuunnelma samalle parillisten numeroiden joukolle. Ei ole tarpeen määritellä, että n on luonnollinen luku, koska tämä käy ilmi oikealla olevasta kaavasta.
  • on järkevien numeroiden joukko ; eli todellisia lukuja, jotka voidaan kirjoittaa kahden kokonaisluvun suhteena .

Monimutkaisemmat ilmaisut merkinnän vasemmalla puolella

Jatkeena set-rakentaja merkintä korvaa yhden muuttujan x kanssa ilme . Joten sen sijaan meillä voi olla mitä pitäisi lukea

.

Esimerkiksi:

  • , missä on kaikkien luonnollisten numeroiden joukko, on kaikkien parillisten luonnollisten lukujen joukko.
  • , missä on kaikkien kokonaislukujen joukko, on kaikkien järkevien lukujen joukko.
  • on parittomien kokonaislukujen joukko.
  • luo joukon pareja, joissa jokainen pari laittaa kokonaisluvun parittomaan kokonaislukuun.

Kun käänteisfunktiot voidaan ilmaista nimenomaisesti, vasemmalla oleva ilmaisu voidaan eliminoida yksinkertaisella korvaamisella. Harkitse esimerkkiä . Tee korvaus , toisin sanoen , ja korvaa sitten t joukonmuodostajan merkinnällä löytääksesi

Vastaavat predikaatit tuottavat yhtä suuret joukot

Kaksi joukkoa ovat samat silloin ja vain, jos niissä on samat elementit. Joukkorakentajan merkintällä määritetyt joukot ovat samat vain ja vain, jos niiden joukkorakentajasäännöt, mukaan lukien toimialueen määritteet, ovat vastaavia. Tuo on

jos ja vain jos

.

Siksi, jotta voidaan todistaa kahden joukon yhtäläisyys, jotka on määritelty joukkorakentaja -merkinnällä, riittää todistamaan niiden predikaattien vastaavuus, mukaan lukien verkkotunnuksen karsinnat.

Esimerkiksi,

koska nämä kaksi sääntöpredikaattia vastaavat loogisesti:

Tämä vastaavuus pätee, koska minkä tahansa reaaliluvun x kohdalla meillä on silloin ja vain jos x on järkevä luku ja . Erityisesti molemmat sarjat ovat yhtä suuria kuin sarja .

Aseta olemassaolon aksiooma

Monissa muodollisissa joukkoteorioissa , kuten Zermelo – Fraenkel -joukkoteoriassa , joukkorakentajan merkintä ei ole osa teorian muodollista syntaksia. Sen sijaan on olemassa joukon olemassaolon aksioomamalli , joka sanoo, että jos E on joukko ja Φ ( x ) on kaava joukkoteorian kielellä, niin on joukko Y, jonka jäsenet ovat täsmälleen E: n elementtejä, jotka täyttävät Φ :

Tästä aksioomista saatu joukko Y on täsmälleen joukko, joka on kuvattu joukonmuodostajan merkinnässä as .

Rinnakkaisuutta ohjelmointikielillä

Samanlainen merkintä, joka on saatavana useilla ohjelmointikielillä (erityisesti Python ja Haskell ), on luettelon ymmärtäminen , joka yhdistää kartta- ja suodatintoiminnot yhden tai useamman luettelon päälle .

Pythonissa joukkorakentajan aaltosulkeet korvataan hakasulkeilla, suluilla tai kiharoilla, jolloin saadaan luettelo, generaattori ja joukko objekteja. Python käyttää englanninkielistä syntaksia. Haskell korvaa setinrakentajan olkaimet hakasulkeilla ja käyttää symboleja, mukaan lukien vakio set-builder-pystypalkki.

Sama voidaan saavuttaa Scalassa käyttämällä sekvenssin ymmärryksiä, jossa "for" -avainsana palauttaa luettelon tuotetuista muuttujista, jotka käyttävät "tuotto" -avainsanaa.

Harkitse näitä joukkorakentajan merkintäesimerkkejä joillakin ohjelmointikielillä:

Esimerkki 1 Esimerkki 2
Sarjarakentaja
Python
{l for l in L}
{(k, x) for k in K for x in X if P(x)}
Haskell
[l | l <- ls]
[(k, x) | k <- ks, x <- xs, p x]
Scala
for (l <- L) yield l
for (k <- K; x <- X if P(x)) yield (k,x)
C#
from l in L select l
from k in K from x in X where P(x) select (k,x)
SQL
SELECT l FROM L_set
 SELECT k, x FROM K_set, X_set WHERE P(x)

Joukkorakentajan merkintä ja luettelon ymmärtämisen merkintä ovat molemmat esimerkkejä yleisemmästä merkinnästä, joka tunnetaan nimellä monad ymmärtäminen , joka sallii kartan/suodattimen kaltaiset toiminnot minkä tahansa monadin päällä, jossa on nollaelementti .

Katso myös

Huomautuksia