Specifik ciju valoda z
This presentation is the property of its rightful owner.
Sponsored Links
1 / 27

Specifikāciju valoda Z PowerPoint PPT Presentation


  • 70 Views
  • Uploaded on
  • Presentation posted in: General

Specifikāciju valoda Z. Specifikāciju valodas. Z: ievada piezīmes. Z - sistēma strukturētu matemātisku teoriju veidošanai, izmantojama programmatūras specifikācijā; Matemātiskā notācija: kopu teorija, kopu operācijas, attiecības (relācijas) starp kopām, klasiskā matemātiskā loģika;

Download Presentation

Specifikāciju valoda Z

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Specifik ciju valoda z

Specifikāciju valoda Z

Specifikāciju valodas


Z ievada piez mes

Z: ievada piezīmes

  • Z - sistēma strukturētu matemātisku teoriju veidošanai, izmantojama programmatūras specifikācijā;

  • Matemātiskā notācija: kopu teorija, kopu operācijas, attiecības (relācijas) starp kopām, klasiskā matemātiskā loģika;

  • Programmatūras specifikācija: abstrakto mašīnu modelis (stāvoklis, operācijas, ieejas un izejas parametri, invariants);

  • Z specifikācijas pamata struktūras bloks - shēma:

    • satur deklarācijas daļu kopā ar predikātu daļu;

    • izmantota gan programmas stāvokļa, gan arī stāvokļu maiņas aprakstam;

    • valoda Z piedāvā līdzekļus shēmu kombinācijai

  • Z notācija: attīstījusies ilgākā laika posmā, pirmās publikācijas ap 1980.gadu, ISO standarts 2002.gadā (dažādā literatūrā var būt pieejamas dažādas Z "variācijas")

  • Z: pieejams plašs resursu klāsts tīmeklī (t.sk. reference manual, arī mācību grāmatas).


Z specifik cijas objekti un tipi

Z specifikācijas: objekti un tipi

Z - sistēma strukturētu matemātisku teoriju veidošanai

Matemātiskais pamats: kopu teorijas konstrukcijas, attiecības starp kopām, utt.

Katram objektam, katrai izteiksmei valodā Z – noteikts tips. Tipu sistēma – palīdz izvairīties no kopu teorijas līmeņa paradoksiem.

Tips – dotas (lietotāja ieviestas) kopas vārds, vaiizteiksme, kas uzkonstruēta no tiem, izmantojot tipu veidošanas operācijas.

Katrs tips specifikācijā ir arī kopa.

Katra kopa specifikācijā ir apakškopa kādai kopai, kas ir tips.

Dotās kopas – struktūra specifikācijas ietvaros netiek precizēta. [STUDENT]

Iebūvētais tips – Z, veselo skaitļu kopa.

Tipu konstruēšanas līdzekļi:

Kopas tips.PZP STUDENT

Korteža tips (Dekarta reizinājumi).Z×Z

Shēmas tipi, satur kā elementus saistījumus (bindings) A  [ x: Z, y: Z ]


Tipu konstru anas l dzek i elementu piem ri

Tipu konstruēšanas līdzekļi, elementu piemēri

Iebūvētais tips – Z, veselo skaitļu kopa.

Izmantojamas arī dotās kopas (struktūru neprecizē).

Tipu konstruēšanas līdzekļi:

Kopas tips:

Katra viena tipa t objektu kopa ir objekts kopas tipā P t.

{1,3,5} : P Z

Kopas uzdošana: ar elementu uzskaitījumu, vai kopu raksturojošo īpašību.

{1,3,5} { k: Z | k  0  2k+1 }

Korteža tips (Dekarta reizinājumi):

Ja x: u un y: t, tad pāris (x,y): u  t. Analoģiski veidojami arī vairākdimensionāli reizinājumi: u  t  v , utt.

Piemēri elementiem tipos, kas iegūti ar korteža operāciju:

(1,3) : Z×Z

{ n: Z | (n, n+1) } : P ( Z×Z )

P, × - var izmantot arī kopu (ne tikai tipu) konstruēšanā.


Tipu konstru anas l dzek i sh mas tips

Tipu konstruēšanas līdzekļi: shēmas tips

Saistījumi (angl. bindings), atbilst shēmas tipiem: jap un q ir dažādi identifikatori, un x: u un y: t, tadeksistē saistījums z = px, qy ar komponentēm z.p = x un z.q = y, ar shēmas tipu  p: u, q: t  .

Shēma: A  [ x: Z, y: Z | x < y ](deklarāciju daļa, plus predikāta daļa)

Shēmas tips:  x: Z, y: Z 

Elementi šajā shēmas tipā: x-7, y13, x13, y-7 (neatbilst shēmai, bet atbilst shēmas tipam)

Iespējams arī ar n komponentēm.

Intuitīvi: shēma apraksta struktūru ar noteiktām komponentēm un to tipiem (signatūra, deklarācija), kam izpildās noteikta īpašība (predikāts).

2 shēmas tipi ir vienādi, ja satur vienādus identifikatorus, kam atbilst vienādi tipi (identifikatoru secība shēmas tipā nav svarīga).

2 viena tipa saistījumi ir vienādi, ja vienādiem identifikatoriem atbilst vienādas vērtības.


Z specifik cijas rel cijas un funkcijas

Z specifikācijas: relācijas un funkcijas

Relācijas un funkcijas – atvasināti jēdzieni. Primārie: kopas tips, Dekarta reizinājums, shēmas tips (saistījumi px, qy).

Binārās relācijas un funkcijas – tiek modelētas un identificētas ar to grafikiem.

Binārā relācija: to sakārtoto pāru kopa, kurai šī relācija ir patiesa.

Piemērs:(3,7)  _<_, (10,43)  _<_, utt.

Binārās relācijas starp kopām X un Y: X  Y, sinonīms ar P ( X  Y ).

Daļēji definētas funkcijas: X -+-> Y ( X -+-> Y  P ( X  Y ) ) .

Visur definētas funkcijas: X  Y ( X  Y  X -+-> Y ) .

Ja f  X -+-> Y , tad rakstām f(x), apzīmē vienīgo f vērtību, kas atbilst x.

Vairāku argumentu funkcijas: apskatītas kā viena argumenta funkcijas, kam arguments ir kortežs.

Diskusija:

Vai saprotams X  Y  P ( X  Y ) ?

Ja f  X  Y , tad f: P ( X  Y ) .


Z specifik cijas sh mas

A

x: Zy: Z

x < y

Z specifikācijas: shēmas

Signatūra: mainīgo kopums, kurā katram mainīgajam norādīts tips.

Signatūru izveido deklarācija.

Katrai signatūrai dabiski atbilst shēmas tips, piemēram, signatūrai x: u, y: tatbilst shēmas tips  x:u, y:t .

Shēma ir signatūra, kopā ar šajā signatūrā definētu īpašību (ja īpašība nav norādīta, tad tā ir true).

Piemērs:A  [ x: Z, y:Z | x < y ]. x un y – shēmas komponentes.

Shēmas signatūru nosaka tās deklarācija.

Shēmas īpašība ietver shēmas tekstā norādīto predikātu, bet iespējams, ka arī deklarācija arī tālāk ierobežo shēmas īpašību.

Piemērs:B  [ f: Z  Z | f(3) = 4 ].

Shēmas deklarācijas daļa nosaka ne tikai f tipu, kas ir P(Z  Z), bet arī to, ka f ir funkcija.


Matem tisk s lo ikas elementi

Matemātiskās loģikas elementi

Apgalvojumu (t.sk. predikātu) kombinēšanas iespējas, izmantojot parastās loģiskās saites: , , , u.c.

Kvantori: z: N  z  x- universālais kvantors

Eksistenciālais kvantors: 

Unikālas eksistences kvantors: 1

Vispārīgā universālā kvantora (un arī citu kvantoru) forma: D | P  QD – deklarācija; P, Q – predikāti

D un P kopā veido shēmu

Universāli kvantificētā predikāta nozīme: lai arī kādas nebūtu deklarācijā D ieviesto mainīgo vērtības, ja P ir patiess, tad arī Q ir patiess.

Kvantifikācija pa shēmu ar deklarāciju D un predikātu P.

z: N | true  z  xN = { n: Z | n  0  n } N = { n: Z | n  0 } z: N | (k: N  z = 2*k)  z  x

Klasiskā matemātiskā loģika. Ja kāda no izteiksmes apakšizteiksmēm nav definēta, tad pašas izteiksmes vērtība ir nenoteikta – mēs izšķiramies nezināt to, vai tā ir true, vai false.


Sh mu kombin ana

C

A

y: Zz: 1 .. 10

x: Zy: Z

y = z * z

x < y

Shēmu kombinēšana

Loģiskām saitēm , ,  analoģiskas saites var tikt pielietotas arī shēmām.

Signatūras ir savietojamas, ja tajās vienādi nosauktiem mainīgajiem ir sakrītoši tipi.

Signatūras sašaurināšanas un paplašināšanas jēdzieni.

Shēmu konjunkcija: signatūru savietošana, īpašību konjunkcija.

Shēmu disjunkcija: signatūru savietošana, īpašību disjunkcija.

Shēmas negācija: signatūra tiek saglabāta, īpašības negācija. Jāņem vērā visa īpašība, ne tikai predikātā atklāti formulētā, bet arī deklarācijā implicīti ietvertā.

Vingrinājums: uzrakstīt konjunkciju A  C un negāciju C


Sh mu oper cijas turpin jums

C

y: Zz: 1 .. 10

y = z * z

y: Z

z: 1 .. 10 y = z * z

Shēmu operācijas: turpinājums

Paslēpšanas operators \ - veids, kā sašaurināt shēmas elementu kopumu.

Ja S ir shēma un x1, ..., xn ir S komponentes, tad S \ (x1, ..., xn) arī ir shēma, kurai ir visas tās pašas komponentes, kas ir S, izņemot x1, ..., xn .

Jaunās shēmas īpašība ir spēkā tiem un tikai tiem saistījumiem, kas ir sašaurinājumi no saistījumiem, kas apmierina S īpašību.

Piemērs: shēmas C, C \ ( z )

Paslēpšana – var tikt raksturota ar eksistenciālo kvantoru.

Ja S un T ir shēmas ar savietojamām signatūrām, tad S |` T aplūko S  T, un tad paslēpj visus T signatūras elementus.


Sh mu oper cijas kvantori

Shēmu operācijas: kvantori

Kvantori: cits veids, kā paslēpt shēmas elementus

Shēmu kvantori: Ja D ir deklarācija, P – predikāts un S – shēma, kas ir savietojama ar D, tad D | P  S un D | P  S ir shēmas.

Signatūra: no S paslēpjam elementus, kas ir D.

Īpašība: aplūkojam visus iespējamos paplašinājumus uz S signatūru, kuri apmierina P.

 gadījumā: visi šādi paplašinājumi apmierina S īpašību.

 gadījumā: eksistē šāds paplašinājums, kas apmierina S īpašību.


Z specifik cijas strukt ra paragr fi

Z specifikācijas struktūra: paragrāfi

Specifikācija definē globālus vārdus (globāli mainīgie, shēmas), katrs izmantojams tālāk uz priekšu specifikācijā.

Atsauces uz priekšu, vai rekursija nav atļautas (izņēmums – brīvie tipi, sk. tālāk).

Specifikācija sastāv no paragrāfiem. Paragrāfi:

  • Pamata tipu deklarācijas: [ NAME, DATE ] . Tipus var tālāk lietot specifikācijā.

  • Aksiomātiskās definīcijas:| x NAME

    square: N  N

    n  N  square(n) = n * nievieš mainīgo, kopā ar īpašību

  • Ierobežojumi: n < 13 (attiecas uz jau definētiem globāliem mainīgajiem)

  • Shēmu definīcijas

  • Saīsinājumu definīcijas:DATABASE  ADDR  PAGE

  • Brīvo tipu definīcijas (sk. nākamo slaidu).

  • Neformāls teksts, paskaidrojumi – arī var tikt iekļauts Z specifikācijā.


Z specifik cijas br vie tipi

Z specifikācijas: brīvie tipi

tip : TREEDefinīcijas variants bez rekursijasfork: N  TREE  TREE >--> TREE

Iespējamas arī “brīvo” tipu definīcijas: TREE ::= tip | fork N  TREE  TREE

Definīcija ekvivalenta ar [TREE], kam seko:

disjoint  {tip}, ran fork 

W: P TREE  {tip}  fork (| N  W  W |)  W  TREE  W

>--> - visur definēta injekcija

>-+-> - daļēji definēta injekcija

disjoint  A, B, ... , C  - kopām A, B, ..., C nav kopīgu elementu.

_  _  - attēls ar relāciju (relational image)

R: XY, S: P X  R  S  = { x: X, y: Y | x  S  x R y  y }

R – infikss lietojums relācijai R.

y  R  S   { x: X, y: Y | x  S  x R y }

Diskusija:kāpēc abas definīcijas ekvivalentas?


Matem tiska teorija valod z piem rs

Matemātiska teorija valodā Z: piemērs

Valoda IMP0 no iepriekšējām lekcijām, šeit izmantota kā “eksperimenta trusītis”.

Sintakse definēta, izmantojot brīvo tipu definīcijas metodi.

[VAR]

AExpr ::= con Z | var VAR | plus AExpr  AExpr | minus AExpr  AExpr | times AExpr  AExpr

BExpr ::= ttrue | ffalse | neg BExpr | and BExpr  BExpr | or BExpr  BExpr | eq AExpr  AExpr | leq AExpr  AExpr

Com ::= skip | assign VAR  AExpr | seq Com  Com | if_op BExpr  Com  Com | while_op BExpr  Com

Semantika - ?


Matem tiska teorija valod z piem rs turpin ts

Matemātiska teorija valodā Z: piemērs, turpināts

State  VAR  Z IMP0 semantika: definīcijas skice.

aVal : AExpr × State  Z

s: STATEx: Z v: VAR a,b: AExpr  aVal(con(x),s) = x  aVal(var(v),s) = s(v)  aVal(plus(a,b),s) = aVal(a,s) + aVal(b,s)  ...

bVal : BExpr × State  {true, false}...

update : State × VAR ×Z  State

s, t: STATEn: Z v,v’: VAR  update(s,v,n) = t  t(v)=n  v’v  s(v’) = t(v’)

eval : P (State × Com × State)

s, t: STATEc,c1,c2: Com v: VAR a: AExpr b: BExpr  c = skip  ( (s,c,t)  eval s = t) ) c = assign(v,a) ( (s,c,t)  eval t = update(s, v, aVal(a,s))) c = seq(c1, c2) ( (s,c,t)  eval (r: State  (s,c1,r)  eval  (r,c2,t)  eval ))c = if_op(b,c1,c2)  ( (s,c,t)  eval(bval(b,s)=true  (s,c1,t)  eval)  (bval(b,s)=false  (s,c2,t)  eval)c = while_op(b,c1,c2)  ( (s,c,t)  eval((bval(b,s)=true  s = t)  (bval(b,s)=true  r: State  (s,c1,r)  eval  (r,c,t)  eval )) )


Vienk r s piem rs dzim anas dienu re istrs

AddBirthday

AddBirthday

BirthdayBook, BirthdayBook'- shēmas dekorācija, beigu stāvoklisname? : Name; date? : Date

 BirthdayBook - sākuma un beigu stāvokļi deklarēti šeitname? : Name; date? : Date

name?  known  birthday'= birthday  {name? |date?}

name?  known  birthday'= birthday  {name? |date?}

Vienkāršs piemērs: Dzimšanas dienureģistrs

BirthdayBook

known: P Name - kopas apakškopu kopabirthday: Name -+-> Date- daļēji definēta funkcija

[Name, Date] - dotās kopas, vienmēr arī Z - dotā kopa

known = dom birthday

 BirthdayBook  BirthdayBook  BirthdayBook' -  notācija


Dzim anas dienu re istrs 2

FindBirthday

 BirthdayBookname? : Name; date! : Date

name?  known  date ! = birthday(name?) known' = known  birthday' =birthday

FindBirthday

Remind

 BirthdayBookname? : Name; date! : Date

 BirthdayBooktoday? : Date; cards ! : P Name

name?  known  date ! = birthday(name?)

cards ! = {n: known | birthday(n) = today?}

InitBirthdayBook

BirthdayBook'

known' = 

Dzimšanas dienureģistrs (2)

 BirthdayBook [BirthdayBook |known'=known; birthday' = birthday]

Inicializācija:


Oper ciju priek nosac jumi

AddBirthday

BirthdayBook, BirthdayBook'name? : Name; date? : Date

name?  known  birthday'= birthday  {name? |date?}

Operāciju priekšnosacījumi

pre S - nosacījums uz operāciju raksturojošas shēmas sākuma stāvokli (mainīgo bezdekorācijām vērtībām) un ieejas datiem (mainīgo ar dekorāciju ? vērtībām),kas spēkā tad un tikai tad, ja eksistē beigu stāvokļa mainīgo un izejas datu vērtības, ar kurām kopā dotās sākuma vērtības un ieejas dati apmierina shēmas predikātu.

pre AddBirthday = [BirthdayBook ; name? : Name; date? : Date |name?  known]

pre FindBirthday = [BirthdayBook ; name? : Name |name?  known]

Sākuma nosacījums netiek izdalīts atsevišķi no kopējā operāciju raksturojošā predikāta.

Sekas: iespējams pievienot izteiksmi, kas tieši attiecas tikai uz beigu mainīgajiem,bet kura būtiski maina priekšnosacījumu.


Dzim anas dienu re istrs specifik cijas papildin jums

Success

result! : Report

result! = ok

AlreadyKnown

 BirthdayBookname? : Name; result ! : Report

name?  known  result ! = already_known

Dzimšanas dienu reģistrs: specifikācijas papildinājums

Report ::= ok| already_known | not_known - brīvā (induktīvā) tipa definējums

RAddBirthday  (AddBirthday  Success)  AlreadyKnown

Valodā Z iespējamas loģiskās operācijas ar shēmām: konjunkcija, disjunkcija, negācija. Lai konjunkcija vai disjunkcija būtu definēta, nepieciešams, lai shēmudeklarācijas daļas būtu saskaņotas.

Izpildot loģiskās operācijas, nepieciešams ņemt vērā, ka daļa no predikāta var būt implicīti ietverta jau deklarācijas daļā.


Dzim anas dienu re specifik cijas papildin jums 2

NotKnown

 BirthdayBookname? : Name; result ! : Report

name?  known  result ! = not_known

Dzimšanas dienu reģ.: specifikācijas papildinājums (2)

RFindBirthday (FindBirthday  Success)  NotKnown

RRemind  Remind  Success


Dzim anas dienu re istrs implement cija

BirthdayBook1

names : N1 Namedates : N1 Date ; hwm : N

i,j : 1 .. hwm i  j  names(i)  names(j)

AbsBB

BirthdayBookBirthdayBook1

known = {i : 1 .. hwm  names(i) } {names(i)|i1..hwm}i : 1 .. hwm birthday (names(i)) = dates(i)

AddBirthday1

 BirthdayBook1name? : Name; date? : Date

i : 1 .. hwm  name? names(i)  hwm' = hwm + 1 names' = names  {hwm' | name?}dates' = dates  {hwm' | date?}

Dzimšanas dienu reģistrs: "implementācija"

Z: specifikācijas notācija, nevis specifikācijas metode (kā, piemēram, B). Z ļauj pierakstīt strukturētā veidā dažādus apgalvojumus, bet veids, kā šie apgalvojumi saistās kopā vienotā programmatūras izstrādes procesā, netiek a priori fiksēts.


Valodas z matem tisk s konstrukcijas ieskats

Valodas Z matemātiskās konstrukcijas: ieskats

{…} - kopa

Kopu operācijas: , , , \,  (elementu skaits, S), , ,  - tukša kopa, SS, SS (kopu vispārinātais apvienojums, šķēlums), P, P1, F, F1 - visu, netukšo, galīgo un galīgo netukšo apakškopu kopa,  - Dekarta reizinājums

{ | • } - kopas formācija

Vispārīgā forma: { S • E }, kur S – shēmas teksts, E – izteiksme.Elementi šajā kopā – izteiksmes E vērtības, kas atbilst visām iespējamām shēmas S ieviesto mainīgo vērtībām, kurām S īpašība ir patiesa.

(...) – kortežs. Binārā kortežā operācijas first, second.

 - funkcijas notācija.

Vispārīgā forma: S • E, kur S – shēmas teksts, E – izteiksme

Šāda izteiksme apraksta funkciju, kuras argumentus definē shēma S, un katram argumentam atbilstošais rezultāts tiek iegūts kā E. Ekvivalenta ar { S • (T,E) }, kur T – shēmas tekstu S raksturojošais kortežs.

Raksturojošais kortežs – mainīgo uzskaitījums korteža formā.


Valodas z matem tisk s konstrukcijas ieskats1

Valodas Z matemātiskās konstrukcijas: ieskats

 - definitīvi aprakstošā izteiksme

Vispārīgā forma:  S • E, kur S – shēmas teksts, E – izteiksmeDefinēta tikai tad, ja eksistē viens vienīgs veids, kā izvēlēties S mainīgo vērtības, tā lai S īpašība būtu patiesa.Šajā gadījumā  S • E vērtība ir šīm mainīgo vērtībām atbilstošā izteiksmes E vērtība.

( BirthdayBook | known =  • birthday ) - funkcija ar tukšu argumentu kopu

( BirthdayBook | known =  ) - terms ar tipu BirthdayBook

 - saistījuma (binding) formēšana shēmai: S’, kur S – shēmas vārds, ’ – dekorācija (dekorācijas var būt arī citādas).Ja S komponentes ir x1, ..., xn, ar tipiem t1, ..., tn, tad S’ tips ir x1:t1, ..., xn:tn.S’ vērtība saistījumā u pati ir saistījums z, tāds, ka katram i: z.xi = u.xi’.

Likumi: S’.xi = xi’S’ = S  (x1’ = x1)  (x2’ = x2)  ...  (xn’ = xn)

Piemēri būs pieejami tālākā materiālā.


Valodas z matem tisk s konstrukcijas rel cijas

Valodas Z matemātiskās konstrukcijas: relācijas

Tālāki datu tipi un to operācijas: sk. valodas Z sintakses pārskatā, valodas rokasgrāmatā.

Relācijas:

dom R, ran R, - definīcijas un vērtību kopaid X – identitātes relācijaR1 ; R2 – relāciju kompozīcijaR1  R2 – apgrieztā relāciju kompozīcijaS <| R - definīcijas apgabala ierobežošana (izmet ārā visus, kas nav iekš S)R |> S - vērtību kopas ierobežošana (izmet ārā visus, kas nav iekš S)S <-| R - definīcijas apgabala anti-ierobežošana (izmet ārā visus, kas ir iekš S)R |-> S - vērtību kopas anti-ierobežošana (izmet ārā visus, kas ir iekš S)R (| S|) – kopas attēls ar relācijuR1  R2 – relācijas pārdefinēšana atbilstoši R2Rk, R+, R* - iterācija, tranzitīvais slēgums, refleksīvi tranzitīvais slēgums


Valodas z matem tisk s konstrukcijas virknes

Valodas Z matemātiskās konstrukcijas: virknes

Virknes: Valodā Z var veidot virknes no viena tipa objektiem.

Virkne – funkcija no naturāliem skaitļiem uz virknē iekļauto objektu tipu.

seq X == { f: N ++-> X | dom f = 1 .. #f }

seq1 X == { f: seq X | #f > 0 }- netukšas virknes

iseq X == seq X  ( N >-> X)- injektīvas virknes

Sakārtota virkne:

ordered s == i,j: N  1  i  j  #f  s(i)  s(j)

Operācijas:# - garums, ^ - konkatenācija, rev, head, last, tail, front, S prefix T, S suffix T, S in T (segmenta iekļaušana),U ’| S – elementu atlasīšana no virknes atbilstoši indeksu kopaiS |‘ V – atlasa no virknes tos elementus, kas pieder kopai V.disjoint SeqSet – kopām virknē SeqSet nav kopīgu elementuSeqSet partition T.

ran s = { i: 1 .. #s  s(i) } – virknes elementu kopa.


Valodas z matem tisk s konstrukcijas maisi

[X]

count: bag X >-->> ( X N )>-->> - bijekcija_in_ : X  bag X

x : X; B: bag Xcount B = (x: X  0) Bx in B  x  dom B

Valodas Z matemātiskās konstrukcijas: maisi

Maiss – multikopa, elementu kopums, kurā svarīgs katra elementa ieiešanas reižu skaits (bet nav svarīga secība). Visu maisu ar elementu tipu X kopa:

bag X == X -+-> N1

Maiss – daļēji definēta funkcija, kas katram maisa elementam piekārto tā ieiešanas reižu skaitu maisā (funkcija nav definēta citiem tipa X elementiem).

Parametrizēta shēma:

Virknes s elementu maiss: items sitems: seq X  bag Xx : X; s: seq Xcount (items s) x = #{ i: dom s | s(i) = x }

Virkne u ir sakārtota virknes s permutācija:items u = items s  ordered u


Valodas z matem tisk s konstrukcijas

Valodas Z matemātiskās konstrukcijas


  • Login