Type | Noms de variables | Valeur initiale |
int [12] | tab | "peu importe" |
int | t, d | 0, 1 (*) |
boolean | plein | false |
Symbole | Valeur |
---|---|
bord | (d = t + 1) ∨ (t = 11) ∧ (d = 0) |
'bord | ‘bord = (‘d = ‘t + 1) ∨ (‘t = 11) ∧ (‘d = 0) |
ds | int[12] x int x int x boolean |
af : ds → <File12>
af(tab, t, d, plein) =
Condition | Trace canonique |
---|---|
(¬ bord ∨ plein) ∧ (t ≥ d) | [ADD(*, tab[t-i])]i=0..t-d |
(¬ bord ∨ plein) ∧ (t < d) | [ADD(*, tab[t-i)]i=0..t . [ADD(*, tab[11+d-i)]i=d..11 |
bord ∧ ¬plein | _ |
Nom de fonction de programme | Arg#1 | Signature |
---|---|---|
pf_ADD | int | ds → ds |
pf_REMOVE | ds → ds | |
pf_FRONT | ds → ds x int |
pf_ADD = NC(t) ∧ ∀j:int; (0 ≤ j ≤ 11 ∧ j ≠ d' ⇒ NC(tab[j])) ∧
('d = 0) ∧ | ('d ≠ 0) ∧ | |||||
'bord ∧ | ¬ 'bord | 'bord ∧ | ¬ 'bord | |||
'plein | ¬'plein | 'plein | ¬'plein | |||
tab'[d'] = | 'tab['d] | a | a | 'tab['d] | a | a |
d' = | 'd | 11 | 11 | 'd | 'd - 1 | 'd - 1 |
plein' = | 'plein | false | 't = 10 | 'plein | false | true |
pf_REMOVE = NC(tab, d) ∧
(¬'bord ∨ 'plein) ∧ |
'bord ∧ ¬'plein | ||
('t = 0) | ('t > 0) | ||
t' = | 11 | 't - 1 | 't |
plein' = | false | false | 'plein |
pf_FRONT = NC(tab, t, d, plein) ∧ (return = 'tab['t])