From stdpp Require Import prelude finite. From Coq Require Import FinFun Rdefinitions. From VLSM.Lib Require Import Preamble ListExtras StdppListSet Measurable. From VLSM.Core Require Import VLSM Composition ProjectionTraces. From VLSM.Core Require Import Equivocation. From VLSM.Lib Require Import Preamble StdppExtras.
Core: VLSM Trace-Wise Equivocation
Section sec_tracewise_equivocation. Context `{EqDecision message} `{EqDecision index} (IM : index -> VLSM message) `{forall i : index, HasBeenSentCapability (IM i)} `{forall i : index, HasBeenReceivedCapability (IM i)} `{EqDecision validator} (threshold : R) `{Hmeasurable_V : Measurable validator} `{FinSet validator Cv} `{!ReachableThreshold validator Cv threshold} `{finite.Finite validator} (A : validator -> index) (sender : message -> option validator) .
An item is equivocating in a trace containing it if it receives
a message which has not been previously sent in that trace.
Definition item_equivocating_in_trace (item : composite_transition_item IM) (tr : list (composite_transition_item IM)) : Prop := from_option (fun m => ~ trace_has_message (field_selector output) m tr) False (input item).message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validatorRelDecision item_equivocating_in_tracemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validatorRelDecision item_equivocating_in_tracemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
item: composite_transition_item IM
tr: list (composite_transition_item IM)Decision (item_equivocating_in_trace item tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
tr: list (composite_transition_item IM)Decision (item_equivocating_in_trace {| l := l; input := input; destination := destination; output := output |} tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (composite_type IM)
m: message
destination: state (composite_type IM)
output: option message
tr: list (composite_transition_item IM)Decision (item_equivocating_in_trace {| l := l; input := Some m; destination := destination; output := output |} tr)by typeclasses eauto. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (composite_type IM)
m: message
destination: state (composite_type IM)
output: option message
tr: list (composite_transition_item IM)Decision (¬ Exists (λ item : transition_item, VLSM.output item = Some m) tr)
Given a trace, we can precisely identify the validators equivocating
in that trace based on identifying every item_equivocating_in_trace.
Definition equivocating_senders_in_trace (tr : list (composite_transition_item IM)) : set validator := let decompositions := one_element_decompositions tr in let test := (fun d => match d with (pre, item, _) => item_equivocating_in_trace item pre end) in let equivocating_items := map (fun d => match d with (_, item, _) => item end) (filter test decompositions) in let equivocating_messages := omap input equivocating_items in let equivocating_senders := omap sender equivocating_messages in remove_dups equivocating_senders.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = Noneequivocating_senders_in_trace tr = []message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = Noneequivocating_senders_in_trace tr = []message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = None∀ x : validator, x ∉ equivocating_senders_in_trace trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = None
v: validator
Hv: v ∈ equivocating_senders_in_trace trFalsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = None
v: validator
Hv: v ∈ remove_dups (omap sender (omap input (map (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (_, item) := y in item) (filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr)))))Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = None
v: validator
Hv: v ∈ omap sender (omap input (map (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (_, item) := y in item) (filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr))))Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = None
v: validator
msg: message
Hmsg: msg ∈ omap input (map (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (_, item) := y in item) (filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr)))
Hv: sender msg = Some vFalsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = None
v: validator
msg: message
item: transition_item
Hitem: item ∈ map (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (_, item) := y in item) (filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr))
Hmsg: input item = Some msg
Hv: sender msg = Some vFalsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = None
v: validator
msg: message
item: transition_item
pre: list (composite_transition_item IM)
_item: composite_transition_item IM
_suf: list (composite_transition_item IM)
Heq_item: item = _item
Hitem: (pre, _item, _suf) ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr)
Hmsg: input item = Some msg
Hv: sender msg = Some vFalsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
Hinput_none: ∀ item : transition_item, item ∈ tr → input item = None
v: validator
msg: message
item: transition_item
pre: list (composite_transition_item IM)
_item: composite_transition_item IM
_suf: list (composite_transition_item IM)
Heq_item: item = _item
Hitem: pre ++ [_item] ++ _suf = tr
Hmsg: input item = Some msg
Hv: sender msg = Some vFalsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
pre, _suf: list (composite_transition_item IM)
item: transition_item
Hinput_none: ∀ item0 : transition_item, item0 ∈ pre ++ [item] ++ _suf → input item0 = None
v: validator
msg: message
Hmsg: input item = Some msg
Hv: sender msg = Some vFalsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
pre, _suf: list (composite_transition_item IM)
item: transition_item
Hinput_none: item ∈ pre ++ [item] ++ _suf → input item = None
v: validator
msg: message
Hmsg: input item = Some msg
Hv: sender msg = Some vFalseby apply elem_of_app; right; apply elem_of_app; do 2 left. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
pre, _suf: list (composite_transition_item IM)
item: transition_item
Hinput_none: item ∈ pre ++ [item] ++ _suf → input item = None
v: validator
msg: message
Hmsg: input item = Some msg
Hv: sender msg = Some vitem ∈ pre ++ [item] ++ _sufmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validatorv ∈ equivocating_senders_in_trace tr ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validatorv ∈ equivocating_senders_in_trace tr ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validatorv ∈ remove_dups (omap sender (omap input (map (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (_, item) := y in item) (filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr))))) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator(∃ x : message, x ∈ omap input (map (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (_, item) := y in item) (filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr))) ∧ sender x = Some v) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator(∃ x : message, (∃ x0 : transition_item, x0 ∈ map (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (_, item) := y in item) (filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input x0 = Some x) ∧ sender x = Some v) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator(∃ x : message, (∃ x0 : transition_item, (∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), x0 = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input x0 = Some x) ∧ sender x = Some v) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator(∃ x : message, (∃ x0 : transition_item, (∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), x0 = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input x0 = Some x) ∧ sender x = Some v) → ∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator(∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m tr) → ∃ x : message, (∃ x0 : transition_item, (∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), x0 = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input x0 = Some x) ∧ sender x = Some vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator(∃ x : message, (∃ x0 : transition_item, (∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), x0 = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input x0 = Some x) ∧ sender x = Some v) → ∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix: list (composite_transition_item IM)
_item: composite_transition_item IM
suffix: list (composite_transition_item IM)
Heq_item: item = _item
Hfilter: (prefix, _item, suffix) ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr)
Hinput: input item = Some im
Hsender: sender im = Some v∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix: list (composite_transition_item IM)
_item: composite_transition_item IM
suffix: list (composite_transition_item IM)
Heq_item: item = _item
Hfilter: item_equivocating_in_trace _item prefix ∧ (prefix, _item, suffix) ∈ one_element_decompositions tr
Hinput: input item = Some im
Hsender: sender im = Some v∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix: list (composite_transition_item IM)
_item: composite_transition_item IM
suffix: list (composite_transition_item IM)
Heq_item: item = _item
Heqv: item_equivocating_in_trace _item prefix
Hdec: (prefix, _item, suffix) ∈ one_element_decompositions tr
Hinput: input item = Some im
Hsender: sender im = Some v∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix, suffix: list (composite_transition_item IM)
Hdec: (prefix, item, suffix) ∈ one_element_decompositions tr
Heqv: item_equivocating_in_trace item prefix
Hinput: input item = Some im
Hsender: sender im = Some v∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix, suffix: list (composite_transition_item IM)
Hdec: (prefix, item, suffix) ∈ one_element_decompositions tr
Heqv: item_equivocating_in_trace item prefix
Hinput: input item = Some im
Hsender: sender im = Some vsender im = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) im trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix, suffix: list (composite_transition_item IM)
Hdec: (prefix, item, suffix) ∈ one_element_decompositions tr
Heqv: item_equivocating_in_trace item prefix
Hinput: input item = Some im
Hsender: sender im = Some vequivocation_in_trace (free_composite_vlsm IM) im trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix, suffix: list (composite_transition_item IM)
Hdec: (prefix, item, suffix) ∈ one_element_decompositions tr
Heqv: item_equivocating_in_trace item prefix
Hinput: input item = Some im
Hsender: sender im = Some vtr = prefix ++ item :: suffix ∧ input item = Some im ∧ ¬ trace_has_message (field_selector output) im prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix, suffix: list (composite_transition_item IM)
Hdec: prefix ++ [item] ++ suffix = tr
Heqv: item_equivocating_in_trace item prefix
Hinput: input item = Some im
Hsender: sender im = Some vtr = prefix ++ item :: suffix ∧ input item = Some im ∧ ¬ trace_has_message (field_selector output) im prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix, suffix: list (composite_transition_item IM)
Hdec: prefix ++ item :: suffix = tr
Heqv: item_equivocating_in_trace item prefix
Hinput: input item = Some im
Hsender: sender im = Some vtr = prefix ++ item :: suffix ∧ input item = Some im ∧ ¬ trace_has_message (field_selector output) im prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix, suffix: list (composite_transition_item IM)
Hdec: prefix ++ item :: suffix = tr
Heqv: item_equivocating_in_trace item prefix
Hinput: input item = Some im
Hsender: sender im = Some vinput item = Some im ∧ ¬ trace_has_message (field_selector output) im prefixby unfold item_equivocating_in_trace in Heqv; rewrite Hinput in Heqv.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
item: transition_item
prefix, suffix: list (composite_transition_item IM)
Hdec: prefix ++ item :: suffix = tr
Heqv: item_equivocating_in_trace item prefix
Hinput: input item = Some im
Hsender: sender im = Some v¬ trace_has_message (field_selector output) im prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator(∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m tr) → ∃ x : message, (∃ x0 : transition_item, (∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), x0 = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input x0 = Some x) ∧ sender x = Some vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefix∃ x : message, (∃ x0 : transition_item, (∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), x0 = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input x0 = Some x) ∧ sender x = Some vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefix(∃ x : transition_item, (∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), x = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input x = Some im) ∧ sender im = Some vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefix∃ x : transition_item, (∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), x = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input x = Some immessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefix(∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), item = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)) ∧ input item = Some immessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefix∃ y : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), item = (let (y0, _) := y in let (_, item) := y0 in item) ∧ y ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y0, _) := d in let (pre, item) := y0 in item_equivocating_in_trace item pre) (one_element_decompositions tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefixitem = item ∧ (prefix, item, suffix) ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefix(prefix, item, suffix) ∈ filter (λ d : list (composite_transition_item IM) * composite_transition_item IM * list (composite_transition_item IM), let (y, _) := d in let (pre, item) := y in item_equivocating_in_trace item pre) (one_element_decompositions tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefixitem_equivocating_in_trace item prefix ∧ (prefix, item, suffix) ∈ one_element_decompositions trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefixfrom_option (λ m : message, ¬ trace_has_message (field_selector output) m prefix) False (input item) ∧ (prefix, item, suffix) ∈ one_element_decompositions trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefixfrom_option (λ m : message, ¬ trace_has_message (field_selector output) m prefix) False (input item) ∧ (prefix, item, suffix) ∈ one_element_decompositions trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefixfrom_option (λ m : message, ¬ trace_has_message (field_selector output) m prefix) False (Some im) ∧ (prefix, item, suffix) ∈ one_element_decompositions trby apply elem_of_one_element_decompositions. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
tr: list (composite_transition_item IM)
v: validator
im: message
Hsender: sender im = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some im
Heqv: ¬ trace_has_message (field_selector output) im prefix(prefix, item, suffix) ∈ one_element_decompositions trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
prefix, suffix: list (composite_transition_item IM)equivocating_senders_in_trace prefix ⊆ equivocating_senders_in_trace (prefix ++ suffix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
prefix, suffix: list (composite_transition_item IM)equivocating_senders_in_trace prefix ⊆ equivocating_senders_in_trace (prefix ++ suffix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
prefix, suffix: list (composite_transition_item IM)
v: validatorv ∈ equivocating_senders_in_trace prefix → v ∈ equivocating_senders_in_trace (prefix ++ suffix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
prefix, suffix: list (composite_transition_item IM)
v: validator(∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m prefix) → ∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m (prefix ++ suffix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
prefix, suffix: list (composite_transition_item IM)
v: validator
m: message
Hm: sender m = Some v
Heqv: equivocation_in_trace (free_composite_vlsm IM) m prefix∃ m : message, sender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m (prefix ++ suffix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
prefix, suffix: list (composite_transition_item IM)
v: validator
m: message
Hm: sender m = Some v
Heqv: equivocation_in_trace (free_composite_vlsm IM) m prefixsender m = Some v ∧ equivocation_in_trace (free_composite_vlsm IM) m (prefix ++ suffix)by apply equivocation_in_trace_prefix. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
prefix, suffix: list (composite_transition_item IM)
v: validator
m: message
Hm: sender m = Some v
Heqv: equivocation_in_trace (free_composite_vlsm IM) m prefixequivocation_in_trace (free_composite_vlsm IM) m (prefix ++ suffix)
An alternative definition for detecting equivocation in a certain state,
which checks that for every valid trace (using any messages) reaching
that state there exists an equivocation involving the given validator.
Notably, this definition is not generally equivalent to is_equivocating_statewise,
which does not verify the order in which receiving and sending occurred.
Definition is_equivocating_tracewise
(s : composite_state IM)
(v : validator)
(j := A v)
: Prop
:=
forall is tr
(Hpr : finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr),
exists (m : message),
(sender m = Some v) /\
exists prefix elem suffix (lprefix := finite_trace_last is prefix),
tr = prefix ++ elem :: suffix
/\ input elem = Some m
/\ ~ has_been_sent (IM j) (lprefix j) m.
A possibly friendlier version using a previously defined primitive.
Note that this definition does not require the HasBeenSentCapability.
Definition is_equivocating_tracewise_no_has_been_sent (s : composite_state IM) (v : validator) (j := A v) : Prop := forall is tr (Htr : finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr), exists (m : message), (sender m = Some v) /\ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m tr.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validatoris_equivocating_tracewise_no_has_been_sent s v ↔ (∀ (is : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (tr : list transition_item), finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr → v ∈ equivocating_senders_in_trace tr)by split; intros Heqv is tr Htr; specialize (Heqv _ _ Htr) ; apply elem_of_equivocating_senders_in_trace. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validatoris_equivocating_tracewise_no_has_been_sent s v ↔ (∀ (is : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (tr : list transition_item), finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr → v ∈ equivocating_senders_in_trace tr)
If any message can only be emitted by a component corresponding to its sender
(sender_safety_alt_prop), then is_equivocating_tracewise is equivalent
to is_equivocating_tracewise_no_has_been_sent.
message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validatoris_equivocating_tracewise_no_has_been_sent s v ↔ is_equivocating_tracewise s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validatoris_equivocating_tracewise_no_has_been_sent s v ↔ is_equivocating_tracewise s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator(∀ (is : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (tr : list transition_item), finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr → ∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m tr) ↔ (∀ (is : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (tr : list transition_item), finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr → ∃ m : message, sender m = Some v ∧ (∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) m))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))(∀ tr : list transition_item, finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr → ∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m tr) ↔ (∀ tr : list transition_item, finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr → ∃ m : message, sender m = Some v ∧ (∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) m))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
x: list transition_item(finite_constrained_trace_init_to (free_composite_vlsm IM) is s x → ∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m x) ↔ (finite_constrained_trace_init_to (free_composite_vlsm IM) is s x → ∃ m : message, sender m = Some v ∧ (∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), x = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) m))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
x: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s x
H11: initial_state_prop is(∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m x) ↔ (∃ m : message, sender m = Some v ∧ (∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), x = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) m))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
x: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s x
H11: initial_state_prop is
x0: messagesender x0 = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) x0 x ↔ sender x0 = Some v ∧ (∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), x = prefix ++ elem :: suffix ∧ input elem = Some x0 ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
x: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s x
H11: initial_state_prop is
x0: message
H12: sender x0 = Some vequivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) x0 x ↔ (∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), x = prefix ++ elem :: suffix ∧ input elem = Some x0 ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
x: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s x
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
prefix: list transition_item(∃ (item : transition_item) (suffix : list transition_item), x = prefix ++ item :: suffix ∧ input item = Some x0 ∧ ¬ trace_has_message (field_selector output) x0 prefix) ↔ (∃ (elem : transition_item) (suffix : list transition_item), x = prefix ++ elem :: suffix ∧ input elem = Some x0 ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
x: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s x
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
prefix: list transition_item
x1: transition_item(∃ suffix : list transition_item, x = prefix ++ x1 :: suffix ∧ input x1 = Some x0 ∧ ¬ trace_has_message (field_selector output) x0 prefix) ↔ (∃ suffix : list transition_item, x = prefix ++ x1 :: suffix ∧ input x1 = Some x0 ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
x: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s x
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
prefix: list transition_item
x1: transition_item
x2: list transition_itemx = prefix ++ x1 :: x2 ∧ input x1 = Some x0 ∧ ¬ trace_has_message (field_selector output) x0 prefix ↔ x = prefix ++ x1 :: x2 ∧ input x1 = Some x0 ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some vinput x1 = Some x0 ∧ ¬ trace_has_message (field_selector output) x0 prefix ↔ input x1 = Some x0 ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some vtrace_has_message (field_selector output) x0 prefix ↔ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some vfinite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefix → trace_has_message (field_selector output) x0 prefix ↔ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some vfinite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some vfinite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefix → trace_has_message (field_selector output) x0 prefix ↔ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
H13: finite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefixtrace_has_message (field_selector output) x0 prefix ↔ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
H13: finite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefixoracle_stepwise_props (field_selector output) ?Goal1message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
H13: finite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefixfinite_constrained_trace_init_to (free_composite_vlsm IM) ?Goal4 ?Goal3 prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
H13: finite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefix?Goal1 ?Goal3 x0 ↔ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0by apply free_composite_has_been_sent_stepwise_props.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
H13: finite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefixoracle_stepwise_props (field_selector output) ?Goal1done.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
H13: finite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefixfinite_constrained_trace_init_to (free_composite_vlsm IM) ?Goal2 ?Goal1 prefixby eapply has_been_sent_iff_by_sender.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some v
H13: finite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefixcomposite_has_been_sent IM (finite_trace_last is prefix) x0 ↔ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) x0message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some vfinite_constrained_trace_init_to (free_composite_vlsm IM) is (finite_trace_last is prefix) prefixby eapply finite_valid_trace_from_to_app_split. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
v: validator
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
prefix: list transition_item
x1: transition_item
x2: list transition_item
H10: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s (prefix ++ x1 :: x2)
H11: initial_state_prop is
x0: message
H12: sender x0 = Some vfinite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is (finite_trace_last is prefix) prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validatoris_equivocating_tracewise_no_has_been_sent s' v → is_equivocating_tracewise_no_has_been_sent s v ∨ om ≫= sender = Some vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validatoris_equivocating_tracewise_no_has_been_sent s' v → is_equivocating_tracewise_no_has_been_sent s v ∨ om ≫= sender = Some vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some vis_equivocating_tracewise_no_has_been_sent s' v → is_equivocating_tracewise_no_has_been_sent s v ∨ om ≫= sender = Some vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
Heqv: is_equivocating_tracewise_no_has_been_sent s' vis_equivocating_tracewise_no_has_been_sent s v ∨ om ≫= sender = Some vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
Heqv: is_equivocating_tracewise_no_has_been_sent s' vis_equivocating_tracewise_no_has_been_sent s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
Heqv: is_equivocating_tracewise_no_has_been_sent s' v
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
tr: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
Heqv: is_equivocating_tracewise_no_has_been_sent s' v
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
tr: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
Heqv: ∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])∃ (item : transition_item) (suffix : list transition_item), tr = prefix ++ item :: suffix ∧ input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ [item]
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = []∃ (item : transition_item) (suffix : list transition_item), tr = prefix ++ item :: suffix ∧ input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']∃ (item : transition_item) (suffix : list transition_item), tr = prefix ++ item :: suffix ∧ input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ [item]
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = []∃ (item : transition_item) (suffix : list transition_item), tr = prefix ++ item :: suffix ∧ input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ [item]
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = []Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ [item]
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
Heq: {| l := l; input := om; destination := s'; output := om' |} = item
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
Heqv: input {| l := l; input := om; destination := s'; output := om' |} = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
Heqv: input {| l := l; input := om; destination := s'; output := om' |} = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
Heqv: om = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s, s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
m: message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, Some m) (s', om')
v: validator
n: Some m ≫= sender ≠ Some v
tr: list transition_item
Hv: sender m = Some v
prefix: list transition_item
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])Falsecongruence.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s, s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
m: message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, Some m) (s', om')
v: validator
n: sender m ≠ Some v
tr: list transition_item
Hv: sender m = Some v
prefix: list transition_item
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']∃ (item : transition_item) (suffix : list transition_item), tr = prefix ++ item :: suffix ∧ input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']tr = prefix ++ item :: suffix' ∧ input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']tr = prefix ++ item :: suffix'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = (prefix ++ item :: suffix') ++ [item']
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']tr = prefix ++ item :: suffix'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item'](prefix ++ item :: suffix') ++ [item'] = prefix ++ item :: suffix' ++ [item']message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = (prefix ++ item :: suffix') ++ [item']
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']tr = prefix ++ item :: suffix'apply Heq.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr = prefix ++ item :: suffix' ∧ {| l := l; input := om; destination := s'; output := om' |} = item'
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']tr = prefix ++ item :: suffix'by rewrite <- app_assoc. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
v: validator
n: om ≫= sender ≠ Some v
tr: list transition_item
m: message
Hv: sender m = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := om; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m prefix
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s tr
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) is s' (tr ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item'](prefix ++ item :: suffix') ++ [item'] = prefix ++ item :: suffix' ++ [item']message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
Hno_sender: om ≫= sender = None
v: validatoris_equivocating_tracewise_no_has_been_sent s' v → is_equivocating_tracewise_no_has_been_sent s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
Hno_sender: om ≫= sender = None
v: validatoris_equivocating_tracewise_no_has_been_sent s' v → is_equivocating_tracewise_no_has_been_sent s vby destruct (transition_is_equivocating_tracewise_char _ _ _ _ _ Ht v Hs'); [| congruence]. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
Hno_sender: om ≫= sender = None
v: validator
Hs': is_equivocating_tracewise_no_has_been_sent s' vis_equivocating_tracewise_no_has_been_sent s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validatoris_equivocating_statewise IM A sender s v → is_equivocating_tracewise s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validatoris_equivocating_statewise IM A sender s v → is_equivocating_tracewise s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
Hbr_m: has_been_received (IM j) (s j) m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
tr: list transition_item
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr∃ m : message, sender m = Some v ∧ (∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) m)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
Hbr_m: has_been_received (IM j) (s j) m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
tr: list transition_item
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s trsender m = Some v ∧ (∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) m)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
Hbr_m: has_been_received (IM j) (s j) m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
tr: list transition_item
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
Hbr_m: has_been_received (IM j) (s j) m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
tr: list transition_item
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
Hbr_m: has_been_received (IM j) (s j) m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
tr: list transition_item
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM j)) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
Hbr_m: has_been_received (IM j) (s j) m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
tr: list transition_item
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
Hbr_m: selected_message_exists_in_all_preloaded_traces (IM j) (field_selector input) (s j) m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
tr: list transition_item
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
Hbr_m: trace_has_message (field_selector input) m (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
Hbr_m: ∃ x : transition_item, x ∈ VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr ∧ field_selector input m x
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
Hitemj: itemj ∈ VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr
Hinput: field_selector input m itemj
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
item: composite_transition_item IM
Hitem: item ∈ tr
Heq_input: input item = input itemj
Hinput: field_selector input m itemj
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
item: composite_transition_item IM
Hitem: item ∈ tr
Heq_input: input item = input itemj
Hinput: input itemj = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
item: composite_transition_item IM
Hitem: item ∈ tr
Heq_input: input item = input itemj
Hinput: input item = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
item: composite_transition_item IM
Hitem: item ∈ tr
Hinput: input item = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
item: composite_transition_item IM
Hitem: ∃ l1 l2 : list (composite_transition_item IM), tr = l1 ++ item :: l2
Hinput: input item = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)∃ (prefix : list transition_item) (elem : transition_item) (suffix : list transition_item), let lprefix := finite_trace_last is prefix in tr = prefix ++ elem :: suffix ∧ input elem = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)let lprefix := finite_trace_last is prefix in tr = prefix ++ item :: suffix ∧ input item = Some m ∧ ¬ has_been_sent (IM (A v)) (lprefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)input item = Some m ∧ ¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
tr: list transition_item
itemj: transition_item
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
Heq_tr: tr = prefix ++ item :: suffix
Hinput: input item = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s tr
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) tr)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
v: validator
j: index
m: message
Hm: sender m = Some v
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
itemj: transition_item
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
Hinput: input item = Some m
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htrj: finite_constrained_trace_init_to (IM j) (is j) (s j) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM j) (prefix ++ item :: suffix))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s (prefix ++ item :: suffix)
Hlstj: valid_state_prop (preloaded_with_all_messages_vlsm (IM j)) (s j)¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s (prefix ++ item :: suffix)¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_constrained_trace_init_to (free_composite_vlsm IM) is s (prefix ++ item :: suffix)
Htrv: finite_constrained_trace_init_to (IM (A v)) (is (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (prefix ++ item :: suffix))¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_constrained_trace_init_to (IM (A v)) (is (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (prefix ++ item :: suffix))¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_constrained_trace_init_to (IM (A v)) (is (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix ++ VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))¬ has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))
Hbs_m: has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mFalsemessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
Hnbs_m: has_not_been_sent (IM (A v)) (s (A v)) m
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))
Hbs_m: has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mhas_been_sent (IM (A v)) (s (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))
Hbs_m: has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) mhas_been_sent (IM (A v)) (s (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))has_been_sent (IM (A v)) (finite_trace_last is prefix (A v)) m → has_been_sent (IM (A v)) (s (A v)) mmessage, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))oracle_stepwise_props (field_selector output) (has_been_sent (IM (A v)))message, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))in_futures (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v))by apply has_been_sent_stepwise_props.message, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))oracle_stepwise_props (field_selector output) (has_been_sent (IM (A v)))by eexists. Qed.message, index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
validator: Type
A: validator → index
s: composite_state IM
v: validator
m: message
item: composite_transition_item IM
prefix, suffix: list (composite_transition_item IM)
is: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
Htr: finite_trace_last (is (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) prefix) = finite_trace_last is prefix (A v)
Htrv: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v)) (VLSMTotalProjection.VLSM_projection_finite_trace_project (preloaded_component_projection IM (A v)) (item :: suffix))in_futures (preloaded_with_all_messages_vlsm (IM (A v))) (finite_trace_last is prefix (A v)) (s (A v))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator¬ is_equivocating_tracewise_no_has_been_sent s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator¬ is_equivocating_tracewise_no_has_been_sent s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator
Heqv: is_equivocating_tracewise_no_has_been_sent s vFalsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator
Heqv: finite_constrained_trace_init_to (free_composite_vlsm IM) s s [] → ∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m []Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator
Heqv: ∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m []Falseby destruct prefix; inversion Heq. Qed. Context `{RelDecision _ _ is_equivocating_tracewise_no_has_been_sent} . #[export] Program Instance equivocation_dec_tracewise : BasicEquivocation (composite_state IM) validator Cv threshold := { state_validators := fun _ => list_to_set (enum validator); is_equivocating := is_equivocating_tracewise_no_has_been_sent; }.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator
m: message
prefix: list transition_item
suf: transition_item
item: list transition_item
Heq: [] = prefix ++ suf :: itemFalsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
v: validatorv ∈ equivocating_validators s ↔ is_equivocating_tracewise_no_has_been_sent s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
v: validatorv ∈ equivocating_validators s ↔ is_equivocating_tracewise_no_has_been_sent s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
v: validatorv ∈ filter (λ v : validator, is_equivocating s v) (state_validators s) ↔ is_equivocating_tracewise_no_has_been_sent s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
v: validatorv ∈ filter (λ v : validator, is_equivocating_tracewise_no_has_been_sent s v) (list_to_set (enum validator)) ↔ is_equivocating_tracewise_no_has_been_sent s vby itauto (apply elem_of_enum). Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
v: validatoris_equivocating_tracewise_no_has_been_sent s v ∧ v ∈ enum validator ↔ is_equivocating_tracewise_no_has_been_sent s vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
His: composite_initial_state_prop IM sequivocating_validators s ≡ ∅message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
His: composite_initial_state_prop IM sequivocating_validators s ≡ ∅message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
His: composite_initial_state_prop IM s
v: validatorv ∈ equivocating_validators s ↔ v ∈ ∅message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
His: composite_initial_state_prop IM s
v: validatorv ∈ equivocating_validators s → v ∈ ∅message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
His: composite_initial_state_prop IM s
v: validatorv ∈ ∅ → v ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
His: composite_initial_state_prop IM s
v: validatorv ∈ equivocating_validators s → v ∈ ∅by apply initial_state_not_is_equivocating_tracewise with (v := v) in His.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
His: composite_initial_state_prop IM s
v: validatoris_equivocating_tracewise_no_has_been_sent s v → v ∈ ∅by intro HV; contradict HV; apply not_elem_of_empty. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
His: composite_initial_state_prop IM s
v: validatorv ∈ ∅ → v ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
Hno_sender: om ≫= sender = Noneequivocating_validators s' ⊆ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
Hno_sender: om ≫= sender = Noneequivocating_validators s' ⊆ equivocating_validators sby eapply equivocating_validators_is_equivocating_tracewise_iff, transition_receiving_no_sender_reflects_is_equivocating_tracewise. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
Hno_sender: om ≫= sender = None
v: validator
Hs': is_equivocating_tracewise_no_has_been_sent s' vv ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
Hs: composite_initial_state_prop IM sequivocation_fault s = 0%Rmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
Hs: composite_initial_state_prop IM sequivocation_fault s = 0%Rmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
Hs: elements (equivocating_validators s) = []equivocation_fault s = 0%Rby apply sum_weights_empty, elements_empty_iff. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
s: composite_state IM
Hs: elements (equivocating_validators s) = []sum_weights (equivocating_validators s) = 0%Rmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
Hno_sender: om ≫= sender = None(equivocation_fault s' <= equivocation_fault s)%Rmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
Hno_sender: om ≫= sender = None(equivocation_fault s' <= equivocation_fault s)%Rby apply incl_equivocating_validators_equivocation_fault. Qed. End sec_tracewise_equivocation.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
threshold: R
Hmeasurable_V: Measurable validator
Cv: Type
H1: ElemOf validator Cv
H2: Empty Cv
H3: Singleton validator Cv
H4: Union Cv
H5: Intersection Cv
H6: Difference Cv
H7: Elements validator Cv
EqDecision3: EqDecision validator
H8: FinSet validator Cv
ReachableThreshold0: ReachableThreshold validator Cv threshold
EqDecision4: EqDecision validator
H9: finite.Finite validator
A: validator → index
sender: message → option validator
H10: RelDecision is_equivocating_tracewise_no_has_been_sent
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
s: state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om: option message
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))
om': option message
Ht: input_constrained_transition (free_composite_vlsm IM) l ( s, om) (s', om')
Hno_sender: om ≫= sender = None
Heqv: equivocating_validators s' ⊆ equivocating_validators s(equivocation_fault s' <= equivocation_fault s)%R