[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,

Signature symbols in this unit

Symbol Specification Kind Type
# .list-datafList('a) → Nat
# .set-basicfSet('a) → Nat
#oclist-permf'a × List('a) → Nat
. 'listf'a → List('a)
. + .nat-basicfNat × Nat → Nat
. + .list-dataf'a × List('a) → List('a)
. + .listfList('a) × List('a) → List('a)
. + .listfList('a) × 'a → List('a)
. ++ .list-dupfList('a) × 'a → List('a)
. ++ .set-basicfSet('a) × 'a → Set('a)
. +1nat-basicfNat → Nat
. +2 .listf'a × 'a → List('a)
. - .natpfNat × Nat → Nat with λ n, m. n ≥ m
. -- .set-unionfSet('a) × 'a → Set('a)
. -1nat-basicpfNat → Nat with λ n. n ≠ 0
. -1l .list-delfList('a) × 'a → List('a)
. -l .list-delfList('a) × 'a → List('a)
. -p .list-delfList('a) × Nat → List('a)
. .FO?FOWpFOW
. .FO?BeventpBevent
. .FOWs ( . )FLIT-predsfList(Bevent) × T × L → List(FOW)
. .FOs?FLIT-predsp(T → Type(List(Bevent)))
. .W?FOWpFOW
. .W?BeventpBevent
. .bqFLITfFLITGState → T → List(Bevent)
. .bq:= .FLITfFLITGState × (T → List(Bevent)) → FLITGState
. .butlastlist-lastpfList('a) → List('a) with λ x. x ≠ []
. .count ( . )filter-countfList('a) × ('a → Bool) → Nat
. .count ( . )filter-countpfList('a) × Nat × Nat × ('a → Bool) → Nat with λ x, m, n, p. m ≤ n ∧ n ≤ # x
. .distinctlist-dupfList('a) → List('a)
. .drop ( . )list-delpfList('a) × Nat → List('a) with λ x, n. n ≤ # x
. .dropRight ( . )list-lastpfList('a) × Nat → List('a) with λ x, n. n ≤ # x
. .exists ( . )forall-indexWherepList('a) × ('a → Type(Bool))
. .fctrFLITfFLITGState → L → Nat
. .fctrFLITpfFLITAction → L → Nat with λ a. λ l. (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW6(fctr, l, fwriters, tid, fctr0, fwriters0)) ∨ (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW2(fctr, l, fwriters, tid, fctr0, fwriters0))
. .fctr:= .FLITfFLITGState × (L → Nat) → FLITGState
. .fctr0FLITpfFLITAction → L → Nat with λ a. λ l. (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW6(fctr, l, fwriters, tid, fctr0, fwriters0)) ∨ (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW2(fctr, l, fwriters, tid, fctr0, fwriters0))
. .filter ( . )filter-countfList('a) × ('a → Bool) → List('a)
. .filter ( . )set-unionfSet('a) × ('a → Bool) → Set('a)
. .foldLeft ( . )listfList('a) × 'b × ('b × 'a → 'b) → 'b
. .forall ( . )forall-indexWherepList('a) × ('a → Type(Bool))
. .freadersFLITfFLITGState → L → Set(T)
. .freaders:= .FLITfFLITGState × (L → Set(T)) → FLITGState
. .fwritersFLITfFLITGState → L → Set(T)
. .fwritersFLITpfFLITAction → L → Set(T) with λ a. λ l. (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW6(fctr, l, fwriters, tid, fctr0, fwriters0)) ∨ (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW2(fctr, l, fwriters, tid, fctr0, fwriters0))
. .fwriters:= .FLITfFLITGState × (L → Set(T)) → FLITGState
. .fwriters0FLITpfFLITAction → L → Set(T) with λ a. λ l. (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW6(fctr, l, fwriters, tid, fctr0, fwriters0)) ∨ (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW2(fctr, l, fwriters, tid, fctr0, fwriters0))
. .gstateFLITfFLITState → FLITGState
. .gstate:= .FLITfFLITState × FLITGState → FLITState
. .headlist-datapfList('a) → 'a with λ x. x ≠ []
. .indexOf ( . )list-delfList('a) × 'a → Nat
. .indexWhere ( . )forall-indexWherefList('a) × ('a → Bool) → Nat
. .invFLITREADlocFLITpfFLITAction → L with λ a. ∃ tid, l. a = invFLITREAD(tid, l)
. .invFLITWRITElocFLITpfFLITAction → L with λ a. ∃ tid, l, v. a = invFLITWRITE(tid, l, v)
. .invFLITWRITEvalFLITpfFLITAction → V with λ a. ∃ tid, l, v. a = invFLITWRITE(tid, l, v)
. .invPERSIST_FOlocFLITpfFLITAction → L with λ a. ∃ l. a = globalPERSIST_FO(l)
. .invPERSIST_WlocFLITpfFLITAction → L with λ a. ∃ l. a = globalPERSIST_W(l)
. .lBeventpfBevent → L with λ be. be.FO? ∨ be.W?
. .lFLITpfFLITAction → L with λ a. (∃ tid, l. a = pwb(tid, l)) ∨ (∃ tid, l. a = propFO(tid, l)) ∨ (∃ tid, l. a = doWriteFO(tid, l)) ∨ (∃ tid, l, v. a = doWrite(tid, l, v)) ∨ (∃ tid, l, v. a = doRead(tid, l, v)) ∨ (∃ tid, l, n. a = ctrRead(tid, l, n)) ∨ (∃ tid, l. a = ctrInc(tid, l)) ∨ (∃ tid, l. a = ctrDec(tid, l))
. .lastlist-lastpfList('a) → 'a with λ x. x ≠ []
. .locFLITfFLITLState → L
. .locFLITpfFLITAction → L with λ a. (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW6(fctr, l, fwriters, tid, fctr0, fwriters0)) ∨ (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW2(fctr, l, fwriters, tid, fctr0, fwriters0))
. .loc:= .FLITfFLITLState × L → FLITLState
. .lsfFLITfFLITState → T → FLITLState
. .lsf:= .FLITfFLITState × (T → FLITLState) → FLITState
. .map ( . )listfList('a) × ('a → 'b) → List('b)
. .map ( . )set-unionfSet('a) × ('a → 'b) → Set('b)
. .nFLITpfFLITAction → Nat with λ a. ∃ tid, l, n. a = ctrRead(tid, l, n)
. .pcfFLITfFLITState → T → FLITPC
. .pcf:= .FLITfFLITState × (T → FLITPC) → FLITState
. .pmemFLITfFLITGState → L → V
. .pmem:= .FLITfFLITGState × (L → V) → FLITGState
. .pqFLITfFLITGState → L → List(FOW)
. .pq:= .FLITfFLITGState × (L → List(FOW)) → FLITGState
. .retFLITREADvalFLITpfFLITAction → V with λ a. ∃ tid, v. a = retFLITREAD(tid, v)
. .rfoFLITfFLITGState → T → List(Bevent)
. .rfo:= .FLITfFLITGState × (T → List(Bevent)) → FLITGState
. .sublist ( . )list-delpfList('a) × Nat × Nat → List('a) with λ x, n, m. n + m ≤ # x
. .tFLITfFLITLState → T
. .tFLITpfFLITAction → T with λ a. (∃ tid. a = retFLITWRITE(tid)) ∨ (∃ tid, v. a = retFLITREAD(tid, v)) ∨ (∃ tid, l, v. a = invFLITWRITE(tid, l, v)) ∨ (∃ tid, l. a = invFLITREAD(tid, l)) ∨ (∃ tid. a = callRUN(tid)) ∨ (∃ tid. a = callFLITCOMPLETE(tid)) ∨ (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW6(fctr, l, fwriters, tid, fctr0, fwriters0)) ∨ (∃ fctr, l, fwriters, tid, fctr0, fwriters0. a = atomicW2(fctr, l, fwriters, tid, fctr0, fwriters0))
. .t:= .FLITfFLITLState × T → FLITLState
. .taillist-datapfList('a) → List('a) with λ x. x ≠ []
. .take ( . )list-delpfList('a) × Nat → List('a) with λ x, n. n ≤ # x
. .takeRight ( . )list-delpfList('a) × Nat → List('a) with λ x, n. n ≤ # x
. .tidFOWfFOW → T
. .tidFLITpfFLITAction → T with λ a. (∃ tid. a = sfence(tid)) ∨ (∃ tid, l. a = pwb(tid, l)) ∨ (∃ tid. a = propSF(tid)) ∨ (∃ tid, l. a = propFO(tid, l)) ∨ (∃ tid, l. a = doWriteFO(tid, l)) ∨ (∃ tid, l, v. a = doWrite(tid, l, v)) ∨ (∃ tid, l, v. a = doRead(tid, l, v)) ∨ (∃ tid, l, n. a = ctrRead(tid, l, n)) ∨ (∃ tid, l. a = ctrInc(tid, l)) ∨ (∃ tid, l. a = ctrDec(tid, l))
. .vBeventpfBevent → V with λ be. be.W?
. .vFLITpfFLITAction → V with λ a. (∃ tid, l, v. a = doWrite(tid, l, v)) ∨ (∃ tid, l, v. a = doRead(tid, l, v))
. .valFLITfFLITLState → V
. .valFOWpfFOW → V with λ fow. fow.W?
. .val:= .FLITfFLITLState × V → FLITLState
. < .nat-basicpNat × Nat
. < .list-datapList('a) × List('a)
. > .natpNat × Nat
. [ . := . ]list-getputpfList('a) × Nat × 'a → List('a) with λ x, n, a. n < # x
. [ . ]list-getputpfList('a) × Nat → 'a with λ x, n. n < # x
. \ .list-setfList('a) × List('a) → List('a)
. \ .set-unionfSet('a) × Set('a) → Set('a)
. | .FLITPSC-predsfList(FOW) × T → List(FOW)
. |FOFLITPSC-predsfList(FOW) → List(FOW)
. |SF .FLIT-predsfList(Bevent) × L → List(Bevent)
. |WFLITPSC-predsfList(FOW) → List(FOW)
. |WL .FLIT-predsfList(Bevent) × L → List(Bevent)
. ∈ .listp'a × List('a)
. ∈ .set-basicp'a × Set('a)
. ∩ .set-unionfSet('a) × Set('a) → Set('a)
. ∪ .list-setfList('a) × List('a) → List('a)
. ∪ .set-unionfSet('a) × Set('a) → Set('a)
. ≤ .natpNat × Nat
. ≥ .natpNat × Nat
. ⊆ .list-setpList('a) × List('a)
. ⊆ .set-basicpSet('a) × Set('a)
. ⊆m .list-permpList('a) × List('a)
. ⊑ .list-lastpList('a) × List('a)
. ⊒ .list-lastpList('a) × List('a)
. ⊒w .FLIT-predspList(Bevent) × List(Bevent)
. ⊕ .FLITPSC-predsfV × List(FOW) → V
. ⊕ .FLITPSC-predsf(L → V) × (L → List(FOW)) → L → V
. ⊕ .FLIT-predsfV × List(Bevent) → V
. ⊕ .FLIT-predsf(L → V) × List(Bevent) → L → V
. intersect .list-setfList('a) × List('a) → List('a)
. zip .filter-countfList('a) × List('b) → List(('a, 'b))
[]list-datacList('a)
{ . }set-unionf'a → Set('a)
τFLITcFLITAction
∅set-basiccSet('a)
∅memoryfL → V
BeventBevents
CRASHFLITpr: (L → List(FOW)) × (L → Nat) × (T → List(Bevent)) × (L → Set(T)) × (L → Set(T)) × (T → List(Bevent)) × (T → FLITPC)
FLITActionFLITs
FLITCOMPLETEFLITprT × (L → List(FOW)) × (T → List(Bevent)) :
FLITGInvFLITpFLITGState
FLITGStateFLITs
FLITInvFLITpFLITGState × (T → Type(FLITLState)) × (T → Type(FLITPC))
FLITLInvFLITpFLITGState × FLITLState × FLITPC
FLITLStateFLITs
FLITPCFLITs
FLITREADFLITprL × T × (L → V) × (L → List(FOW)) × (L → Nat) : (T → List(Bevent)) × (L → Set(T)) × (T → List(Bevent)) : V
FLITRelyFLITpFLITGState × T × FLITGState
FLITStateFLITs
FLITWRITEFLITprL × V × T × (L → List(FOW)) : (L → Nat) × (T → List(Bevent)) × (L → Set(T))
FOFOWfT → FOW
FOBeventfL → Bevent
FOFollowsWFLITPSC-predspT × List(FOW)
FOFollowsWFLIT-predspT × List(Bevent) × (L → Type(List(FOW))) × L
FOFollowsWFLIT-predspT × List(Bevent) × List(FOW) × L
FOWFOWs
Lmemorys
Listlist-datas
Natnat-basics
OmemorycV
PERSIST_FOFLITprL : (L → List(FOW))
PERSIST_WFLITprL : (L → V) × (L → List(FOW))
PROP_FOFLITprT × L × (L → Set(T)) : (L → List(FOW)) × (T → List(Bevent)) × (T → List(Bevent)) (nondeterministic)
PROP_SFFLITprT × (L → List(FOW)) : (T → List(Bevent))
PROP_WFLITprT : (L → List(FOW)) × (T → List(Bevent))
R1FLITcFLITPC
R2FLITcFLITPC
R3FLITcFLITPC
R4FLITcFLITPC
RUNFLITpr :
SFBeventcBevent
SFTrailingFLIT-predsp(T → Type(List(Bevent)))
Setset-basics
Tmemorys
Vmemorys
WFOWfV × T → FOW
WBeventfL × V → Bevent
W1FLITcFLITPC
W2FLITcFLITPC
W3FLITcFLITPC
W4FLITcFLITPC
W5FLITcFLITPC
W6FLITcFLITPC
W7FLITcFLITPC
aFLIT-proofsvFLITAction
atomicW2FLITf(L → Nat) × L × (L → Set(T)) × T × (L → Nat) × (L → Set(T)) → FLITAction
atomicW6FLITf(L → Nat) × L × (L → Set(T)) × T × (L → Nat) × (L → Set(T)) → FLITAction
beFLIT-proofsvBevent
belFLIT-proofsvList(Bevent)
bqFLIT-proofsvT → List(Bevent)
bvFLIT-proofsvBool
callFLITCOMPLETEFLITfT → FLITAction
callRUNFLITfT → FLITAction
crashedFLITcFLITPC
ctrDecFLITfT × L → FLITAction
ctrIncFLITfT × L → FLITAction
ctrReadFLITfT × L × Nat → FLITAction
ctrokFLITPSC-predsp(L → Type(Nat)) × (L → Type(Set(T)))
disjlist-duppList('a) × List('a)
disjointset-unionpSet('a) × Set('a)
doReadFLITfT × L × V → FLITAction
doWriteFLITfT × L × V → FLITAction
doWriteFOFLITfT × L → FLITAction
dupslist-duppList('a)
fctrFLIT-proofsvL → Nat
fillfirstlist-lastfNat × 'a × List('a) → List('a)
flFLIT-proofsvL
flitInitFLITpFLITState
flitStepFLITpFLITState × FLITAction × FLITState
fowFLIT-proofsvFOW
fowlFLIT-proofsvList(FOW)
freadersFLIT-proofsvL → Set(T)
fromelist-delfList('a) × 'a → List('a)
fvFLIT-proofsvV
fwritersFLIT-proofsvL → Set(T)
glbFLIT-proofsvNat
globalCRASHFLITcFLITAction
globalPERSIST_FOFLITfL → FLITAction
globalPERSIST_WFLITfL → FLITAction
gsFLIT-proofsvFLITGState
gstateFLIT-proofsvFLITGState
gstepfFLITfFLITGState × FLITLState × FLITPC × FLITAction → FLITGState
idleFLITcFLITPC
invFLITREADFLITfT × L → FLITAction
invFLITREADlocFLIT-proofsvL
invFLITWRITEFLITfT × L × V → FLITAction
invFLITWRITElocFLIT-proofsvL
invFLITWRITEvalFLIT-proofsvV
invPERSIST_FOlocFLIT-proofsvL
invPERSIST_WlocFLIT-proofsvL
isPropFOFLIT-predspNat × L × List(Bevent)
lFLIT-proofsvL
locFLIT-proofsvL
lsFLIT-proofsvFLITLState
lsfFLIT-proofsvT → FLITLState
lstepFLITpFLITGState × FLITLState × FLITPC × FLITAction × FLITGState × FLITLState × FLITPC
lstepfFLITfFLITGState × FLITLState × FLITPC × FLITAction → FLITLState
mkFLITgsFLITf(L → V) × (L → List(FOW)) × (L → Nat) × (T → List(Bevent)) × (L → Set(T)) × (L → Set(T)) × (T → List(Bevent)) → FLITGState
mkFLITlsFLITfT × L × V → FLITLState
mklistlist-lastf'a × Nat → List('a)
mkstateFLITfFLITGState × (T → FLITLState) × (T → FLITPC) → FLITState
nFLIT-proofsvNat
noPendingFLITPSC-predspT × (L → Type(List(FOW)))
noPendingFLIT-predspT × (T → Type(List(Bevent))) × (L → Type(List(FOW)))
noPendingWFLITPSC-predspT × (L → Type(List(FOW)))
noPendingWFLIT-predspT × (T → Type(List(Bevent))) × (L → Type(List(FOW)))
notMemberFLITPSC-predspT × (L → Type(Set(T)))
oneMemberFLITPSC-predspT × L × (L → Type(Set(T)))
onePendingWFLITPSC-predspT × L × (L → Type(List(FOW)))
pcFLIT-proofsvFLITPC
pcfFLIT-proofsvT → FLITPC
pcstepfFLITfFLITGState × FLITLState × FLITPC × FLITAction → FLITPC
pendingOkFLITPSC-predsp(L → Type(List(FOW)))
pendingOkFLIT-predsp(T → Type(List(Bevent))) × (L → Type(List(FOW)))
permlist-permpList('a) × List('a)
pmemFLIT-proofsvL → V
pqFLIT-proofsvL → List(FOW)
preFLITpFLITGState × FLITLState × FLITPC × FLITAction
propFOFLITfT × L → FLITAction
propSFFLITfT → FLITAction
pwbFLITfT × L → FLITAction
readFOsOkFLIT-predsp(T → Type(List(Bevent))) × (L → Type(Set(T)))
readyFLITcFLITPC
relyFLIT-predspT × (L → Type(List(FOW))) × (T → Type(List(Bevent))) × (L → Type(List(FOW))) × (T → Type(List(Bevent)))
relyFLIT-predspT × L × List(FOW) × List(Bevent) × List(FOW) × List(Bevent)
relypFLITPSC-predspT × List(FOW) × List(FOW)
relypFLITPSC-predspT × (L → Type(List(FOW))) × (L → Type(List(FOW)))
relywsFLITPSC-predspT × (L → Type(Set(T))) × (L → Type(Set(T)))
relywsFLITPSC-predspT × Set(T) × Set(T)
retFLITREADFLITfT × V → FLITAction
retFLITREADvalFLIT-proofsvV
retFLITWRITEFLITfT → FLITAction
revlist-lastfList('a) → List('a)
rfoFLIT-proofsvT → List(Bevent)
sFLIT-proofsvFLITState
sfenceFLITfT → FLITAction
tFLIT-proofsvT
tidFLIT-proofsvT
tsFLIT-proofsvSet(T)
vFLIT-proofsvV
valFLIT-proofsvV
wlFLIT-proofsvL
writersOkFLITPSC-predsp(L → Type(List(FOW))) × (L → Type(Set(T)))
writersOkFLIT-predsp(T → Type(List(Bevent))) × (L → Type(List(FOW))) × (L → Type(Set(T)))