[Imprint][Data Privacy Statement][E-Mail]

Back to main index. View the specification. View theorem base summary, View theorem base listing, the used properties by spec, the dependency list, the symbol table,

Theorem base for Specification FLITPSC-preds

This is a listing of all goals defined over the current specification. Axioms are marked yellow, proved theorems green and unproved theorems blue. Click on individual names to get more information on the proof.

Name: Sequent: Type:
noPendingW ⊦ noPendingW(t, p) ↔ (∀ l. p(l) |W | t = []) An Axiom
oplus-v-append ⊦ v ⊕ (fowl0 + fowl1) = (v ⊕ fowl0) ⊕ fowl1 A User Theorem
relyp-persist ⊦ p(l) = fow ' + fowl → relyp(t0, p, p(l := fowl)) A User Theorem
oplus-v-one-W ⊦ v ⊕ W(v0, t) ' = v0 A User Theorem
filter-tid-empty ⊦ [] | t = [] A User Theorem
oplus-addFO-aux ⊦ v ⊕ (fowl + FO(t) ') = v ⊕ fowl A User Theorem
in-filter-W ⊦ fow ∈ fowl |W ↔ fow ∈ fowl ∧ fow.W? A User Theorem
ctrok-size-writers-eq-ctr ⊦ ctrok(ctr, writers) → # writers(l) = ctr(l) A User Theorem
relyp-no-pending-w-stable ⊦ relyp(t, p0, p1) ∧ noPendingW(t, p0) → noPendingW(t, p1) A User Theorem
relyp-refl ⊦ relyp(t, p, p) A User Theorem
filter-FO-append ⊦ (fowl + fowl0)|FO = fowl |FO + fowl0 |FO A User Theorem
one-pending-no-fo-no-pending ⊦ onePendingW(t, l, p) ∧ FOFollowsW(t, p(l)) ∧ p(l) = FO(t) ' + fowl ∧ ¬ FO(t) ∈ fowl → noPendingW(t, p) A User Theorem
relyp-no-event-added-by-other ⊦ relyp(t, p0, p1) ∧ fow.tid = t ∧ ¬ fow ∈ p0(l) → ¬ fow ∈ p1(l) A User Theorem
noWriter ⊦ notMember(t, tsf) ↔ (∀ l. ¬ t ∈ tsf(l)) An Axiom
writersOk ⊦ writersOk(p, writers) ↔ (∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = [])) An Axiom
filter-FO-idx ⊦ n < # fowl |FO ∧ fowl |FO[n] = fow → (∃ m. n ≤ m ∧ m < # fowl ∧ fowl[m] = fow) A User Theorem
filter-FO-one-FO ⊦ FO(t) ' |FO = FO(t) ' A User Theorem
notMember-onewriter-contra ⊦ notMember(t, tsf) → ¬ oneMember(t, l, tsf) A User Theorem
overwrite-def ⊦ ((mem ⊕ p))(l) = mem(l) ⊕ p(l) An Axiom
oneWriter ⊦ oneMember(t, l, tsf) ↔ (∀ l0. t ∈ tsf(l0) ↔ l0 = l) An Axiom
filter-w-fo ⊦ (FO(t) ' + fowl)|W = fowl |W A User Theorem
pending-ok-persist ⊦ pendingOk(p) ∧ p(l) = fow ' + fowl → pendingOk(p(l := fowl)) A User Theorem
overwrite-base ⊦ v ⊕ [] = v An Axiom
oplus-v-one-FO ⊦ v ⊕ FO(t) ' = v A User Theorem
filter-w-empty ⊦ [] |W = [] A User Theorem
get-filter-t-rev ⊦ n < #(fowl | t) ∧ (fowl | t)[n] = fow → (∃ m. m < # fowl ∧ fowl[m] = fow) A User Theorem
filtertid-def ⊦ fowl | t = fowl.filter(λ fow. fow.tid = t) An Axiom
get-filter-t ⊦ n < # fowl ∧ fowl[n] = fow ∧ fow.tid = t → (∃ m. m < #(fowl | t) ∧ (fowl | t)[m] = fow) A User Theorem
relyws-refl ⊦ relyws(t, tsf, tsf) A User Theorem
in-filter-t ⊦ fow ∈ fowl | t ↔ fow ∈ fowl ∧ fow.tid = t A User Theorem
FOFollowsW-def ⊦ FOFollowsW(t, fowl) ↔ (∀ n. n < # fowl ∧ fowl[n].W? ∧ fowl[n].tid = t → (∃ n0. n < n0 ∧ n0 < # fowl ∧ fowl[n0] = FO(t))) An Axiom
oplus-same-writes-eq ⊦ fowl0 |W = fowl1 |W → (v ⊕ fowl0 = v ⊕ fowl1 ↔ true) A User Theorem
notMember-not-in ⊦ notMember(t, tsf) → ¬ t ∈ tsf(l) A User Theorem
relyws-rm-other-writer ⊦ t ≠ t0 → relyws(t, tsf, tsf(l := tsf(l) -- t0)) A User Theorem
filter-W-one-fo ⊦ FO(t) ' |W = [] A User Theorem
fo-follows-last ⊦ FOFollowsW(t, fowl + FO(t) ') A User Theorem
relyp-fo-follows-w-stable ⊦ FOFollowsW(t, p0(l)) ∧ relyp(t, p0, p1) → FOFollowsW(t, p1(l)) A User Theorem
oplus-recW ⊦ p(l0) = W(v, t0) ' + fowl → mem1(l0 := v) ⊕ p(l0 := fowl) = mem1 ⊕ p A User Theorem
filter-FO-empty ⊦ [] |FO = [] A User Theorem
relyws-noWriter-stable ⊦ relyws(t, tsf0, tsf1) ∧ notMember(t, tsf0) → notMember(t, tsf1) A User Theorem
filter-W-one-w ⊦ W(v, t) ' |W = W(v, t) ' A User Theorem
add-pending-fo-ok ⊦ pendingOk(p) → pendingOk(p(l := p(l) + FO(t) ')) A User Theorem
allrelyp-def ⊦ relyp(t, p, p0) ↔ (∀ l. relyp(t, p(l), p0(l))) An Axiom
relyws-oneWriter-stable ⊦ relyws(t, tsf0, tsf1) ∧ oneMember(t, l, tsf0) → oneMember(t, l, tsf1) A User Theorem
filter-W-append ⊦ (fowl + fowl0)|W = fowl |W + fowl0 |W A User Theorem
add-pending-w-ok ⊦ noPending(t, p) ∧ pendingOk(p) → pendingOk(p(l := p(l) + W(v, t) ')) A User Theorem
onemember-to-nomember ⊦ oneMember(t, l, tsf) → notMember(t, tsf(l := tsf(l) -- t)) A User Theorem
add-pending-w-one-pending ⊦ noPending(t, p) → onePendingW(t, l, p(l := p(l) + W(v, t) ')) A User Theorem
writersok-rm-writer ⊦ writersOk(p, writers) ∧ oneMember(t, l, writers) ∧ noPending(t, p) → writersOk(p, writers(l := writers(l) -- t)) A User Theorem
filter-W-t-swap ⊦ fowl |W | t = (fowl | t)|W A User Theorem
filter-t-append ⊦ fowl + fowl0 | t = (fowl | t) + (fowl0 | t) A User Theorem
relyws-def ⊦ relyws(t, ts, ts0) ↔ t ∈ ts ↔ t ∈ ts0 An Axiom
relyp-add-other-fo ⊦ t ≠ t0 → relyp(t0, p, p(l := p(l) + FO(t) ')) A User Theorem
writersok-add-writer ⊦ writersOk(p, writers) ∧ notMember(t, writers) → writersOk(p, writers(l := writers(l) ++ t)) A User Theorem
ctrok-def ⊦ ctrok(ctr, writers) ↔ (∀ l. # writers(l) = ctr(l)) An Axiom
writersok-del-pos ⊦ writersOk(p, writers) → writersOk(p(l := p(l) -p n), writers) A User Theorem
filter-t-split ⊦ fowl | t = fowl0 + fow ' + fowl1 ↔ (∃ fowl2, fowl3. fowl = fowl2 + fow ' + fowl3 ∧ fowl0 = fowl2 | t ∧ fow.tid = t ∧ fowl1 = fowl3 | t) A User Theorem
pendingOk ⊦ pendingOk(p) ↔ (∀ l, t. #(p(l) |W | t) ≤ 1) An Axiom
writersok-persist ⊦ writersOk(p, writers) ∧ p(l) = fow ' + fowl → writersOk(p(l := fowl), writers) A User Theorem
filter-FO-one-W ⊦ W(v, t) ' |FO = [] A User Theorem
writersok-add-fo ⊦ writersOk(p, writers) → writersOk(p(l := p(l) + FO(t) '), writers) A User Theorem
no-pending-w-no-pending ⊦ noPending(t, p) → noPendingW(t, p) A User Theorem
in-filter-FO ⊦ fow ∈ fowl |FO ↔ fow ∈ fowl ∧ fow.FO? A User Theorem
onemember-nowriter-contra ⊦ oneMember(t, l, tsf) → ¬ notMember(t, tsf) A User Theorem
allrelyws-def ⊦ relyws(t, tsf, tsf0) ↔ (∀ l. relyws(t, tsf(l), tsf0(l))) An Axiom
onewriter-ctrok-nonzero ⊦ oneMember(t, l, writers) ∧ ctrok(ctr, writers) → ctr(l) ≠ 0 A User Theorem
ctrok-rm-writer ⊦ ctrok(ctr, writers) ∧ oneMember(t, l, writers) ∧ ctr(l) = n + 1 → ctrok(ctr(l := n), writers(l := writers(l) -- t)) A User Theorem
oplus-addW-aux ⊦ v0 ⊕ (fowl + W(v, t) ') = v A User Theorem
one-pending-add-stable ⊦ onePendingW(t, l, p) → onePendingW(t, l, p(l := p(l) + fow ')) A User Theorem
filterfos-def ⊦ fowl |FO = fowl.filter(λ fow. fow.FO?) An Axiom
no-pending-w-add-fo-stable ⊦ noPendingW(t, p) → noPendingW(t, p(l := p(l) + FO(t0) ')) A User Theorem
ctrok-add-writer ⊦ ctrok(ctr, writers) ∧ notMember(t, writers) → ctrok(ctr(l := ctr(l) + 1), writers(l := writers(l) ++ t)) A User Theorem
filter-w-write ⊦ (W(v, t) ' + fowl)|W = W(v, t) ' + fowl |W A User Theorem
noPending ⊦ noPending(t, p) ↔ (∀ l. p(l) | t = []) An Axiom
at-filter-FO-not-W ⊦ n < # fowl |FO → fowl |FO[n] ≠ W(v, t) A User Theorem
relyp-def ⊦ relyp(t, fowl, fowl0) ↔ (∃ fowl1, fowl2. fowl ⊒ fowl1 ∧ fowl0 = fowl1 + fowl2 ∧ fowl2 | t = []) An Axiom
overwrite-rec2 ⊦ v ⊕ (W(v0, t) ' + fowl) = v0 ⊕ fowl An Axiom
relyp-no-pending-stable ⊦ relyp(t, p0, p1) ∧ noPending(t, p0) → noPending(t, p1) A User Theorem
onemember-eq ⊦ oneMember(t, l, tsf) → (t ∈ tsf(l0) ↔ l = l0) A User Theorem
onePendingW ⊦ onePendingW(t, l, p) ↔ (∀ l0. l0 ≠ l → p(l0) |W | t = []) An Axiom
writersok-add-pending ⊦ writersOk(p, writers) ∧ oneMember(t, l, writers) ∧ noPending(t, p) → writersOk(p(l := p(l) + W(v, t) '), writers) A User Theorem
oplus-addFO ⊦ mem ⊕ p(l := p(l) + FO(t) ') = mem ⊕ p A User Theorem
relyp-add-other-w ⊦ t ≠ t0 → relyp(t0, p, p(l := p(l) + W(v, t) ')) A User Theorem
filterwrites-def ⊦ fowl |W = fowl.filter(λ fow. fow.W?) An Axiom
filter-t-one ⊦ fow ' | t = (t = fow.tid ⊃ fow ';[]) A User Theorem
nomember-to-onemember ⊦ notMember(t, tsf) → oneMember(t, l, tsf(l := tsf(l) ++ t)) A User Theorem
pendingsok-del-pos ⊦ pendingOk(p) → pendingOk(p(l := p(l) -p n)) A User Theorem
relyws-add-other-writer ⊦ t ≠ t0 → relyws(t, tsf, tsf(l := tsf(l) ++ t0)) A User Theorem
relyp-one-pending-stable ⊦ relyp(t, p0, p1) ∧ pendingOk(p) ∧ onePendingW(t, l, p0) → onePendingW(t, l, p1) A User Theorem
overwrite-rec1 ⊦ v ⊕ (FO(t) ' + fowl) = v ⊕ fowl An Axiom
oplus-addW ⊦ mem ⊕ p(l := p(l) + W(v, t) ') = (mem ⊕ p)(l := v) A User Theorem