From Coq Require Import Reals.From VLSM.Core Require Import VLSM VLSMProjections Composition. From VLSM.Core Require Import SubProjectionTraces MessageDependencies Equivocation. From VLSM.Core Require Import NoEquivocation FixedSetEquivocation TraceWiseEquivocation.
Core: Witnessed Equivocation
s
, there is
a trace ending in s
whose equivocating_senders_in_trace are precisely
the equivocators of s
(the WitnessedEquivocationCapability),
we can show that for each Free valid state there exists
a valid trace with the strong_trace_witnessing_equivocation_property,
i.e., a trace whose every prefix is a witness for its corresponding end state
(Lemma free_has_strong_trace_witnessing_equivocation_prop).
In particular, the set of equivocators is monotonically increasing for such a
trace (Lemma strong_witness_equivocating_validators_prefix_monotonicity).
Section sec_witnessed_equivocation. Context `{EqDecision message} `{finite.Finite index} (IM : index -> VLSM message) `{forall i : index, HasBeenSentCapability (IM i)} `{forall i : index, HasBeenReceivedCapability (IM i)} `{finite.Finite validator} (Free := free_composite_vlsm IM) (PreFree := preloaded_with_all_messages_vlsm Free) (threshold : R) `{ReachableThreshold validator Cv threshold} (A : validator -> index) (sender : message -> option validator) `{RelDecision _ _ (is_equivocating_tracewise_no_has_been_sent IM A sender)} (Htracewise_BasicEquivocation : BasicEquivocation (composite_state IM) validator Cv threshold := equivocation_dec_tracewise IM threshold A sender) (equivocating_validators := equivocating_validators (BasicEquivocation := Htracewise_BasicEquivocation)) .
A trace witnesses the equivocation of its final state
s
if its set of
equivocators is precisely that of the equivocating_validators of s
.
Definition trace_witnessing_equivocation_prop is tr (s := finite_trace_last is tr) : Prop := forall v, v ∈ equivocating_validators s <-> exists (m : message), (sender m = Some v) /\ equivocation_in_trace PreFree m tr.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
is: state (composite_type IM)
tr: list transition_item
Htr: trace_witnessing_equivocation_prop is tr
s:= finite_trace_last is tr: state (composite_type IM)set_eq (elements (equivocating_validators s)) (equivocating_senders_in_trace IM sender tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
is: state (composite_type IM)
tr: list transition_item
Htr: trace_witnessing_equivocation_prop is tr
s:= finite_trace_last is tr: state (composite_type IM)set_eq (elements (equivocating_validators s)) (equivocating_senders_in_trace IM sender tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
is: state (composite_type IM)
tr: list transition_item
Htr: trace_witnessing_equivocation_prop is tr
s:= finite_trace_last is tr: state (composite_type IM)
v: validator
Hv: v ∈ elements (equivocating_validators s)v ∈ equivocating_senders_in_trace IM sender trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
is: state (composite_type IM)
tr: list transition_item
Htr: trace_witnessing_equivocation_prop is tr
s:= finite_trace_last is tr: state (composite_type IM)
v: validator
Hv: v ∈ equivocating_senders_in_trace IM sender trv ∈ elements (equivocating_validators s)by apply elem_of_elements, Htr in Hv; apply elem_of_equivocating_senders_in_trace.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
is: state (composite_type IM)
tr: list transition_item
Htr: trace_witnessing_equivocation_prop is tr
s:= finite_trace_last is tr: state (composite_type IM)
v: validator
Hv: v ∈ elements (equivocating_validators s)v ∈ equivocating_senders_in_trace IM sender trby eapply elem_of_elements, Htr, elem_of_equivocating_senders_in_trace. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
is: state (composite_type IM)
tr: list transition_item
Htr: trace_witnessing_equivocation_prop is tr
s:= finite_trace_last is tr: state (composite_type IM)
v: validator
Hv: v ∈ equivocating_senders_in_trace IM sender trv ∈ elements (equivocating_validators s)
A composition of VLSMs has the witnessed equivocation capability if towards any
valid states there exist a trace witnessing its equivocation.
Class WitnessedEquivocationCapability : Prop := { is_equivocating_tracewise_witness : forall s, constrained_state_prop Free s -> exists is tr, finite_constrained_trace_init_to Free is s tr /\ trace_witnessing_equivocation_prop is tr }. Section sec_witnessed_equivocation_properties. Context (Hke : WitnessedEquivocationCapability) (Hsender_safety : sender_safety_alt_prop IM A sender) .message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM strace_witnessing_equivocation_prop s []message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM strace_witnessing_equivocation_prop s []message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validatorv ∈ equivocating_validators (finite_trace_last s []) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m [])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validatorv ∈ equivocating_validators (List.last (map destination []) s) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m [])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validatorv ∈ equivocating_validators s ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m [])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validatorv ∈ elements (equivocating_validators s) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m [])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validatorv ∈ [] ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m [])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator[] = elements (equivocating_validators s)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validatorv ∈ [] ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m [])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator[] = elements (equivocating_validators s)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator(∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m []) → v ∈ []message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator[] = elements (equivocating_validators s)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator
m: message
Hmsg: equivocation_in_trace PreFree m []v ∈ []message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator[] = elements (equivocating_validators s)by elim (no_equivocation_in_empty_trace PreFree m).message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator
m: message
Hmsg: equivocation_in_trace PreFree m []v ∈ []by symmetry; apply elements_empty_iff, equivocating_validators_empty_in_initial_state. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: composite_state IM
Hs: composite_initial_state_prop IM s
v: validator[] = elements (equivocating_validators s)
For any trace having the trace_witnessing_equivocation_property,
its final transition is monotonic w.r.t. the equivocating_validators.
message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: state (composite_type IM)equivocating_validators s ⊆ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: state (composite_type IM)equivocating_validators s ⊆ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: state (composite_type IM)
v: validator
Hv: v ∈ equivocating_validators sv ∈ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (finite_trace_last is (tr ++ [item])) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: state (composite_type IM)
Hv: v ∈ equivocating_validators sv ∈ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: state (composite_type IM)
Hv: v ∈ equivocating_validators sv ∈ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: state (composite_type IM)
Hv: v ∈ equivocating_validators s∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: state (composite_type IM)
Hv: is_equivocating_tracewise_no_has_been_sent IM A sender s v∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: state (composite_type IM)
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m tr∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: state (composite_type IM)
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m trsender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item])by apply equivocation_in_trace_prefix. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: state (composite_type IM)
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m trequivocation_in_trace PreFree m (tr ++ [item])
Given a trace with the trace_witnessing_equivocation_property,
if the equivocating_validators for the destination of its last transition
are included in the equivocating_validators for the source of its last
transition, the the trace without its last transition also has the
trace_witnessing_equivocation_property.
message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: state (composite_type IM)
Hincl: equivocating_validators s' ⊆ equivocating_validators strace_witnessing_equivocation_prop is trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: state (composite_type IM)
Hincl: equivocating_validators s' ⊆ equivocating_validators strace_witnessing_equivocation_prop is trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: state (composite_type IM)
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = strace_witnessing_equivocation_prop is trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
v: validatorv ∈ equivocating_validators s → ∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
v: validator(∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr) → v ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
v: validatorv ∈ equivocating_validators s → ∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m trby eapply equivocating_validators_is_equivocating_tracewise_iff with (ReachableThreshold0 := H11).message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
v: validator
Hv: v ∈ equivocating_validators s∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
v: validator(∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr) → v ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
v: validator
msg: message
Hsender: sender msg = Some v
Heqv: equivocation_in_trace PreFree msg trv ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
v: validator
msg: message
Hsender: sender msg = Some v
Heqv: equivocation_in_trace PreFree msg trv ∈ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
msg: message
Hsender: sender msg = Some v
Heqv: equivocation_in_trace PreFree msg tr∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
msg: message
Hsender: sender msg = Some v
Heqv: equivocation_in_trace PreFree msg trsender msg = Some v ∧ equivocation_in_trace PreFree msg (tr ++ [item])by apply equivocation_in_trace_prefix. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
item: composite_transition_item IM
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item]))
s':= destination item: composite_state IM
Hincl: equivocating_validators s' ⊆ equivocating_validators s
Hlst: finite_trace_last is tr = s
msg: message
Hsender: sender msg = Some v
Heqv: equivocation_in_trace PreFree msg trequivocation_in_trace PreFree msg (tr ++ [item])
An equivocator for the destination of a transition is either an equivocation
for the source as well, or it is the sender of the received message and that
message is not sent by any trace witnessing the source of the transition.
message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
om: option message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, om) (s', om')
v: validatorv ∈ equivocating_validators s' → v ∈ equivocating_validators s ∨ (∃ m : message, om = Some m ∧ sender m = Some v ∧ (∀ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
om: option message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, om) (s', om')
v: validatorv ∈ equivocating_validators s' → v ∈ equivocating_validators s ∨ (∃ m : message, om = Some m ∧ sender m = Some v ∧ (∀ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
om: option message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, om) (s', om')
v: validator
Hv: v ∈ equivocating_validators s'v ∈ equivocating_validators s ∨ (∃ m : message, om = Some m ∧ sender m = Some v ∧ (∀ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
om: option message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, om) (s', om')
v: validator
Hv: v ∈ equivocating_validators s'
Hnv: v ∉ equivocating_validators s∃ m : message, om = Some m ∧ sender m = Some v ∧ (∀ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
om: option message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, om) (s', om')
v: validator
Hv: is_equivocating_tracewise_no_has_been_sent IM A sender s' v
Hnv: v ∉ equivocating_validators s∃ m : message, om = Some m ∧ sender m = Some v ∧ (∀ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
om: option message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, om) (s', om')
v: validator
Hv: is_equivocating_tracewise_no_has_been_sent IM A sender s' v
Hnv: v ∉ equivocating_validators s
Hom: om ≫= sender = Some v∃ m : message, om = Some m ∧ sender m = Some v ∧ (∀ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
Hv: is_equivocating_tracewise_no_has_been_sent IM A sender s' v
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m0 tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
Hv: is_equivocating_tracewise_no_has_been_sent IM A sender s' v
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v∀ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
Hv: is_equivocating_tracewise_no_has_been_sent IM A sender s' v
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
Hv: is_equivocating_tracewise_no_has_been_sent IM A sender s' v
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
Hv: ∃ m0 : message, sender m0 = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m0 (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ [item]
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = []¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ [item]
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = []¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix: list transition_item
Heq: tr = prefix ∧ {| l := l; input := Some m; destination := s'; output := om' |} = item
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = []¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
m': message
Hm': sender m' = Some v
prefix: list transition_item
Heqv: input {| l := l; input := Some m; destination := s'; output := om' |} = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s prefix
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (prefix ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is prefix¬ trace_has_message (field_selector output) m prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
m': message
Hm': sender m' = Some v
prefix: list transition_item
Heqv: Some m = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s prefix
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (prefix ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is prefix¬ trace_has_message (field_selector output) m prefixby inversion Heq_m.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
m': message
Hm': sender m' = Some v
prefix: list transition_item
Heq_m: Some m = Some m'
Heqv: ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s prefix
Hinit: initial_state_prop is
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (prefix ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is prefix¬ trace_has_message (field_selector output) m prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']¬ trace_has_message (field_selector output) m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is tr
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']v ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators (finite_trace_last is tr) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']v ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators (finite_trace_last is tr) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = sv ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators (finite_trace_last is tr) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = sv ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators s ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = sv ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators s ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = s∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators s ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = ssender m' = Some v ∧ equivocation_in_trace PreFree m' trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators s ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = sequivocation_in_trace PreFree m' trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators s ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = str = prefix ++ item :: suffix' ∧ input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ item :: suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators s ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = str = prefix ++ item :: suffix'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': sender m' = Some v
prefix: list transition_item
item: transition_item
suffix, suffix': list transition_item
item': transition_item
Heq: tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}] = prefix ++ [item] ++ suffix' ++ [item']
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators s ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = str = prefix ++ item :: suffix'by destruct Heq as [-> _]. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
l: label (preloaded_with_all_messages_vlsm Free)
s: state (preloaded_with_all_messages_vlsm Free)
m: message
s': state (preloaded_with_all_messages_vlsm Free)
om': option message
Ht: input_constrained_transition Free l ( s, Some m) (s', om')
v: validator
tr: list transition_item
m': message
Hm': 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 := Some m; destination := s'; output := om' |} = item'
Heqv: input item = Some m' ∧ ¬ trace_has_message (field_selector output) m' prefix
Hnv: v ∉ equivocating_validators s
Hom: sender m = Some v
is: state (preloaded_with_all_messages_vlsm Free)
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s tr
Hinit: initial_state_prop is
Hwitness: v ∈ equivocating_validators s ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr)
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [{| l := l; input := Some m; destination := s'; output := om' |}])
Heqsuffix: suffix = suffix' ++ [item']
Hs: finite_trace_last is tr = str = prefix ++ item :: suffix'
Given a non-empty trace with the trace_witnessing_equivocation_property,
there are two disjoint possibilities concerning its last transition.
(1) either it preserves the set of equivocating_validators and, in that case,
the trace without the last transition has the
trace_witnessing_equivocation_property as well; or
(2) The set of equivocating_validators of its destination is obtained
by adding the sender of the message received in the transition to the
set of equivocating_validators of its source, and, in that case, that message
is not sent by any trace witnessing the source of the transition.
message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr_item: finite_constrained_trace_init_to Free is s' (tr ++ [item])
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s:= finite_trace_last is tr: state (composite_type IM)equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr_item: finite_constrained_trace_init_to Free is s' (tr ++ [item])
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s:= finite_trace_last is tr: state (composite_type IM)equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr ++ [item])
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s:= finite_trace_last is tr: state (composite_type IM)equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr) s' [item]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s:= finite_trace_last is tr: state (composite_type IM)equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr) s' [item]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s:= finite_trace_last is tr: state (composite_type IM)equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s:= finite_trace_last is tr: state (composite_type IM)
Htl: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s' s' []
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
s:= finite_trace_last is tr: state (composite_type IM)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')equivocating_validators (finite_trace_last is tr) ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators (finite_trace_last is tr)) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators (finite_trace_last is tr) ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
Hincl: equivocating_validators (finite_trace_last is tr) ⊆ equivocating_validators (destination item)equivocating_validators (finite_trace_last is tr) ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators (finite_trace_last is tr)) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators (finite_trace_last is tr) ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: om ≫= sender = Some vequivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
Heq_v: om ≫= sender = Noneequivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: om ≫= sender = Some vequivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: Some m ≫= sender = Some vequivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m0 : message, Some m = Some m0 ∧ (∃ v : validator, sender m0 = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m0 tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some vequivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m0 : message, Some m = Some m0 ∧ (∃ v : validator, sender m0 = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m0 tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
s0: set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m0 : message, Some m = Some m0 ∧ (∃ v : validator, sender m0 = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m0 tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m0 : message, Some m = Some m0 ∧ (∃ v : validator, sender m0 = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m0 tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
s0: set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m0 : message, Some m = Some m0 ∧ (∃ v : validator, sender m0 = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m0 tr)))by apply (input_valid_transition_reflects_trace_witnessing_equivocation_prop _ _ _ (conj Htr Hinit) _ Hwitness); subst; intros ? ?; apply s0.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
s0: equivocating_validators s ≡ equivocating_validators s'trace_witnessing_equivocation_prop is trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))equivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m0 : message, Some m = Some m0 ∧ (∃ v : validator, sender m0 = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m0 tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))∃ m0 : message, Some m = Some m0 ∧ (∃ v : validator, sender m0 = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m0 tr))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : state (preloaded_with_all_messages_vlsm Free)) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))∃ v : validator, v ∈ equivocating_validators s' ∧ v ∉ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hv: ∃ v : validator, v ∈ equivocating_validators s' ∧ v ∉ equivocating_validators s(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))∃ v : validator, v ∈ equivocating_validators s' ∧ v ∉ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))∃ v : validator, v ∈ elements (equivocating_validators s') ∧ v ∉ elements (equivocating_validators s)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))Exists (λ x : validator, x ∉ elements (equivocating_validators s)) (elements (equivocating_validators s'))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))¬ Forall (λ x : validator, x ∈ elements (equivocating_validators s)) (elements (equivocating_validators s'))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
all: Forall (λ x : validator, x ∈ elements (equivocating_validators s)) (elements (equivocating_validators s'))Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
all: Forall (λ x : validator, x ∈ elements (equivocating_validators s)) (elements (equivocating_validators s'))set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))by unfold set_eq, subseteq, list_subseteq; setoid_rewrite elem_of_elements.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
all: Forall (λ x : validator, x ∈ elements (equivocating_validators s)) (elements (equivocating_validators s'))elements (equivocating_validators s) ⊆ elements (equivocating_validators s')message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hv: ∃ v : validator, v ∈ equivocating_validators s' ∧ v ∉ equivocating_validators s(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
v': validator
Heqv: v' ∈ equivocating_validators s'
Hneqv: v' ∉ equivocating_validators s(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
v': validator
Heqv: v' ∈ equivocating_validators s'
Hneqv: v' ∉ equivocating_validators s
Heq_v': v' ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v' ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
v': validator
Heqv: v' ∈ equivocating_validators s'
Hneqv: v' ∉ equivocating_validators s
_m: message
Heq_m: Some m = Some _m
Heq_v': sender _m = Some v'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) _m tr0(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
v': validator
Heqv: v' ∈ equivocating_validators s'
Hneqv: v' ∉ equivocating_validators s
_m: message
Heq_m: Some m = Some _m
Heq_v': sender _m = Some v'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) _m tr0
H14: m = _m(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) _m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
v': validator
Heqv: v' ∈ equivocating_validators s'
Hneqv: v' ∉ equivocating_validators s
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
Heq_v': sender m = Some v'
Heq_m: Some m = Some m(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
v': validator
Heqv: v' ∈ equivocating_validators s'
Hneqv: v' ∉ equivocating_validators s
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
Heq_v': sender m = Some v'(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
v': validator
Heqv: v' ∈ equivocating_validators s'
Hneqv: v' ∉ equivocating_validators s
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
Heq_v': sender m = Some v'
H13: v' = v(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
Heq_v': sender m = Some v(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0(v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0equivocating_validators s' ≡ {[v]} ∪ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
v': validator
Hv': v' ∈ equivocating_validators s'v' ∈ {[v]} ∪ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
v': validator
Hv': v' ∈ {[v]} ∪ equivocating_validators sv' ∈ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
v': validator
Hv': v' ∈ equivocating_validators s'v' ∈ {[v]} ∪ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
v': validator
Hv': v' ∈ equivocating_validators s'v' ∈ {[v]} ∨ v' ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
v': validator
Hv': v' ∈ equivocating_validators s'
Hveqv: v' ∉ equivocating_validators sv' ∈ {[v]}by apply Honly_v in Hv'; destruct Hv' as [| [_m [Heq_m [Heq_v' _]]]]; [by subst |]; congruence.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
v': validator
Hv': v' ∈ equivocating_validators s'
Hveqv: v' ∉ equivocating_validators sv' = vby apply elem_of_union in Hv' as [Heq_v' | Hs'0] ; [by apply elem_of_singleton in Heq_v'; subst v' | by apply Hincl].message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
m: message
s': composite_state IM
om': option message
item:= {| l := l; input := Some m; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, Some m) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
v: validator
Heq_v: sender m = Some v
n: ¬ set_eq (elements (equivocating_validators s)) (elements (equivocating_validators s'))
Honly_v: ∀ v : validator, v ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr) ∨ (∃ m0 : message, Some m = Some m0 ∧ sender m0 = Some v ∧ (∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m0 tr0))
Hneqv: v ∉ equivocating_validators s
Heqv: v ∈ equivocating_validators s'
Hweqv: ∀ (is0 : composite_state IM) (tr0 : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr) tr0 → trace_witnessing_equivocation_prop is0 tr0 → ¬ trace_has_message (field_selector output) m tr0
v': validator
Hv': v' ∈ {[v]} ∪ equivocating_validators sv' ∈ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
Heq_v: om ≫= sender = Noneequivocating_validators s ≡ equivocating_validators s' ∧ trace_witnessing_equivocation_prop is tr ∨ (∃ m : message, om = Some m ∧ (∃ v : validator, sender m = Some v ∧ (v ∉ equivocating_validators s) ∧ equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s ∧ (∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) m tr)))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
Heq_v: om ≫= sender = Noneequivocating_validators s ≡ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
Heq_v: om ≫= sender = Nonetrace_witnessing_equivocation_prop is trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
Heq_v: om ≫= sender = Noneequivocating_validators s ≡ equivocating_validators s'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
Hincl: equivocating_validators (finite_trace_last is tr) ⊆ equivocating_validators (destination item)
Heq_v: om ≫= sender = None
v: validatorv ∈ equivocating_validators s' → v ∈ equivocating_validators (finite_trace_last is tr)by eapply input_valid_transition_receiving_no_sender_reflects_equivocating_validators.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
Hincl: equivocating_validators (finite_trace_last is tr) ⊆ equivocating_validators (destination item)
Heq_v: om ≫= sender = None
v: validator
Hvs': v ∈ equivocating_validators s'v ∈ equivocating_validators (finite_trace_last is tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
Heq_v: om ≫= sender = Nonetrace_witnessing_equivocation_prop is trby eapply input_valid_transition_receiving_no_sender_reflects_equivocating_validators. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: composite_state IM
tr: list (composite_transition_item IM)
l: composite_label IM
om: option message
s': composite_state IM
om': option message
item:= {| l := l; input := om; destination := s'; output := om' |}: transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr ++ [item])
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (finite_trace_last is tr, om) ( s', om')
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr
Hincl: equivocating_validators s ⊆ equivocating_validators (destination item)
Heq_v: om ≫= sender = Noneequivocating_validators (destination item) ⊆ equivocating_validators (finite_trace_last is tr)
Strongly witnessed equivocation
Definition strong_trace_witnessing_equivocation_prop is tr :=
forall prefix suffix, prefix ++ suffix = tr ->
trace_witnessing_equivocation_prop is prefix.
An advantage of the strong_trace_witnessing_equivocation_property
is that it guarantees monotonicity of equivocating_validators along the trace.
message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
Hwitness: strong_trace_witnessing_equivocation_prop is tr
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr
ps:= finite_trace_last is prefix: state (composite_type IM)equivocating_validators ps ⊆ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
Hwitness: strong_trace_witnessing_equivocation_prop is tr
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr
ps:= finite_trace_last is prefix: state (composite_type IM)equivocating_validators ps ⊆ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is, s: composite_state IM
tr: list (composite_transition_item IM)
Htr: finite_constrained_trace_init_to Free is s tr
Hwitness: strong_trace_witnessing_equivocation_prop is tr∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last is prefix in equivocating_validators ps ⊆ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si: state (preloaded_with_all_messages_vlsm Free)
Hsi: initial_state_prop si
Hwitness: strong_trace_witnessing_equivocation_prop si []
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = []
ps:= finite_trace_last si prefix: state (composite_type IM)equivocating_validators ps ⊆ equivocating_validators simessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: strong_trace_witnessing_equivocation_prop si tr → ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [{| l := l; input := iom; destination := sf; output := oom |}]
ps:= finite_trace_last si prefix: state (composite_type IM)equivocating_validators ps ⊆ equivocating_validators sfby apply app_eq_nil in Heqtr as []; subst.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si: state (preloaded_with_all_messages_vlsm Free)
Hsi: initial_state_prop si
Hwitness: strong_trace_witnessing_equivocation_prop si []
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = []
ps:= finite_trace_last si prefix: state (composite_type IM)equivocating_validators ps ⊆ equivocating_validators simessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: strong_trace_witnessing_equivocation_prop si tr → ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [{| l := l; input := iom; destination := sf; output := oom |}]
ps:= finite_trace_last si prefix: state (composite_type IM)equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
IHHtr: strong_trace_witnessing_equivocation_prop si tr → ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
IHHtr: strong_trace_witnessing_equivocation_prop si tr → ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)strong_trace_witnessing_equivocation_prop si trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators sequivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
IHHtr: strong_trace_witnessing_equivocation_prop si tr → ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)strong_trace_witnessing_equivocation_prop si trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
IHHtr: strong_trace_witnessing_equivocation_prop si tr → ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
pre, suf: list transition_item
Heq: pre ++ suf = trtrace_witnessing_equivocation_prop si premessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
pre, suf: list transition_item
Hwitness: pre ++ suf ++ [item] = tr ++ [item] → trace_witnessing_equivocation_prop si pre
IHHtr: strong_trace_witnessing_equivocation_prop si tr → ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
Heq: pre ++ suf = trtrace_witnessing_equivocation_prop si preby subst; apply app_assoc.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
pre, suf: list transition_item
Hwitness: pre ++ suf ++ [item] = tr ++ [item] → trace_witnessing_equivocation_prop si pre
IHHtr: strong_trace_witnessing_equivocation_prop si tr → ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
Heq: pre ++ suf = trpre ++ suf ++ [item] = tr ++ [item]message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ suffix = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators sequivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ [] = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = []equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
_item: composite_transition_item IM
Heqtr: prefix ++ suffix' ++ [_item] = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [_item]equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix ++ [] = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = []equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix: list (composite_transition_item IM)
Heqtr: prefix = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = []equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
ps:= finite_trace_last si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}]): state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators sequivocating_validators ps ⊆ equivocating_validators sfby rewrite finite_trace_last_is_last.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators sequivocating_validators (finite_trace_last si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])) ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
_item: composite_transition_item IM
Heqtr: prefix ++ suffix' ++ [_item] = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [_item]equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
_item: composite_transition_item IM
Heqtr: (prefix ++ suffix') ++ [_item] = tr ++ [item]
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [_item]equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
_item: composite_transition_item IM
Heqtr: prefix ++ suffix' = tr ∧ _item = item
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [_item]equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
_item: composite_transition_item IM
Heqtr: prefix ++ suffix' = tr
Heq_item: _item = item
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [_item]equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
Heqtr: prefix ++ suffix' = tr
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: ∀ prefix suffix : list (composite_transition_item IM), prefix ++ suffix = tr → let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [item]equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
Heqtr: prefix ++ suffix' = tr
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [item]equivocating_validators ps ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: strong_trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
Heqtr: prefix ++ suffix' = tr
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [item]equivocating_validators s ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: (tr ++ [item]) ++ [] = tr ++ [item] → trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
Heqtr: prefix ++ suffix' = tr
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [item]equivocating_validators s ⊆ equivocating_validators sfmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: (tr ++ [item]) ++ [] = tr ++ [item] → trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
Heqtr: prefix ++ suffix' = tr
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [item](tr ++ [item]) ++ [] = tr ++ [item]message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
prefix, suffix, suffix': list (composite_transition_item IM)
Heqtr: prefix ++ suffix' = tr
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [item]
Hwitness: trace_witnessing_equivocation_prop si (tr ++ [item])equivocating_validators s ⊆ equivocating_validators sfapply app_nil_r.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Hwitness: (tr ++ [item]) ++ [] = tr ++ [item] → trace_witnessing_equivocation_prop si (tr ++ [item])
prefix, suffix, suffix': list (composite_transition_item IM)
Heqtr: prefix ++ suffix' = tr
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [item](tr ++ [item]) ++ [] = tr ++ [item]message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
prefix, suffix, suffix': list (composite_transition_item IM)
Heqtr: prefix ++ suffix' = tr
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [item]
Hwitness: trace_witnessing_equivocation_prop si (tr ++ [item])equivocating_validators s ⊆ equivocating_validators sfby apply (equivocating_validators_witness_monotonicity _ _ _ Htr _ Hwitness). Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
si, s: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) si s tr
sf: state (preloaded_with_all_messages_vlsm Free)
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm Free)
Ht: input_valid_transition (preloaded_with_all_messages_vlsm Free) l (s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
prefix, suffix, suffix': list (composite_transition_item IM)
Heqtr: prefix ++ suffix' = tr
ps:= finite_trace_last si prefix: state (composite_type IM)
IHHtr: let ps := finite_trace_last si prefix in equivocating_validators ps ⊆ equivocating_validators s
Heqsuffix: suffix = suffix' ++ [item]
Hwitness: trace_witnessing_equivocation_prop si (tr ++ [item])equivocating_validators s ⊆ equivocating_validators (destination item)
The next two lemmas show that the strong_trace_witnessing_equivocation_property
is preserved by transitions in both the cases yielded by Lemma
equivocating_validators_witness_last_char as part of the induction step in
the proof of Lemma preloaded_has_strong_trace_witnessing_equivocation_prop.
message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)strong_trace_witnessing_equivocation_prop is' (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)strong_trace_witnessing_equivocation_prop is' (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
prefix, suffix: list transition_item
Heq_tr''_item: prefix ++ suffix = tr'' ++ [item]trace_witnessing_equivocation_prop is' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
prefix, suffix: list transition_item
Heq_tr''_item: prefix ++ [] = tr'' ++ [item]
Hsuffix_eq: suffix = []trace_witnessing_equivocation_prop is' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr''_item: prefix ++ suffix' ++ [sitem] = tr'' ++ [item]
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
prefix, suffix: list transition_item
Heq_tr''_item: prefix ++ [] = tr'' ++ [item]
Hsuffix_eq: suffix = []trace_witnessing_equivocation_prop is' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
prefix, suffix: list transition_item
Heq_tr''_item: prefix = tr'' ++ [item]
Hsuffix_eq: suffix = []trace_witnessing_equivocation_prop is' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)trace_witnessing_equivocation_prop is' (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validatorv ∈ equivocating_validators (finite_trace_last is' (tr'' ++ [item])) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validatorv ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: tr'' ++ [] = tr'' → trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validatorv ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = sv ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = sv ∈ equivocating_validators (destination item) → ∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s(∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])) → v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = sv ∈ equivocating_validators (destination item) → ∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
Hv: v ∈ equivocating_validators (destination item)∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
Hv: v ∈ equivocating_validators s∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
Hv: v ∈ equivocating_validators (finite_trace_last is' tr'')∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
Hv: ∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr''∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace PreFree m tr''∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace PreFree m tr''sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])by apply equivocation_in_trace_prefix.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace PreFree m tr''equivocation_in_trace PreFree m (tr'' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s(∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr'' ++ [item])) → v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace PreFree m (tr'' ++ [item])v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace (preloaded_with_all_messages_vlsm Free) m tr'' ∨ input item = Some m ∧ ¬ trace_has_message (field_selector output) m tr''v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace (preloaded_with_all_messages_vlsm Free) m tr''v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m tr''v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace (preloaded_with_all_messages_vlsm Free) m tr''v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace (preloaded_with_all_messages_vlsm Free) m tr''v ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace (preloaded_with_all_messages_vlsm Free) m tr''v ∈ equivocating_validators (finite_trace_last is' tr'')by exists m.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: equivocation_in_trace (preloaded_with_all_messages_vlsm Free) m tr''∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m tr''message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m tr''v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''¬ trace_has_message (field_selector output) m tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': ¬ trace_has_message (field_selector output) m tr'v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''¬ trace_has_message (field_selector output) m tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': trace_has_message (field_selector output) m tr'Falsemessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': trace_has_message (field_selector output) m tr'trace_has_message (field_selector output) m tr''message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': trace_has_message (field_selector output) m tr'
Htr'_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) strace_has_message (field_selector output) m tr''message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': trace_has_message (field_selector output) m tr'
Htr'_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) s
Hconsistency: selected_message_exists_in_some_preloaded_traces Free (field_selector output) s m → selected_message_exists_in_all_preloaded_traces Free (field_selector output) s mtrace_has_message (field_selector output) m tr''by specialize (Hconsistency is' tr'' Htr'').message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': trace_has_message (field_selector output) m tr'
Htr'_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) s
Hconsistency: selected_message_exists_in_all_preloaded_traces Free (field_selector output) s mtrace_has_message (field_selector output) m tr''message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
v: validator
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': ¬ trace_has_message (field_selector output) m tr'v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
v: validator
Hwitness: v ∈ equivocating_validators (finite_trace_last is (tr' ++ [item])) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item]))
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': ¬ trace_has_message (field_selector output) m tr'v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item]))
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': ¬ trace_has_message (field_selector output) m tr'v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item]))
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': ¬ trace_has_message (field_selector output) m tr'v ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' s tr''
item: transition_item
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item]))
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
Hprefix: trace_witnessing_equivocation_prop is' tr''
Hlst': finite_trace_last is' tr'' = s
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': ¬ trace_has_message (field_selector output) m tr'∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' (finite_trace_last is' tr'') tr''
Htr': finite_constrained_trace_init_to Free is (finite_trace_last is' tr'') tr'
item: transition_item
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item]))
Heq: equivocating_validators (finite_trace_last is' tr'') ≡ equivocating_validators (destination item)
Hprefix: trace_witnessing_equivocation_prop is' tr''
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': ¬ trace_has_message (field_selector output) m tr'∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' (finite_trace_last is' tr'') tr''
Htr': finite_constrained_trace_init_to Free is (finite_trace_last is' tr'') tr'
item: transition_item
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item]))
Heq: equivocating_validators (finite_trace_last is' tr'') ≡ equivocating_validators (destination item)
Hprefix: trace_witnessing_equivocation_prop is' tr''
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': ¬ trace_has_message (field_selector output) m tr'sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item])by eexists tr', _, [].message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is' (finite_trace_last is' tr'') tr''
Htr': finite_constrained_trace_init_to Free is (finite_trace_last is' tr'') tr'
item: transition_item
v: validator
Hwitness: v ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr' ++ [item]))
Heq: equivocating_validators (finite_trace_last is' tr'') ≡ equivocating_validators (destination item)
Hprefix: trace_witnessing_equivocation_prop is' tr''
m: message
Hmsg: sender m = Some v
Heq_om: input item = Some m
Heqv: ¬ trace_has_message (field_selector output) m tr''
Heqv': ¬ trace_has_message (field_selector output) m tr'equivocation_in_trace PreFree m (tr' ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr''_item: prefix ++ suffix' ++ [sitem] = tr'' ++ [item]
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr''_item: (prefix ++ suffix') ++ [sitem] = tr'' ++ [item]
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr''_item: prefix ++ suffix' = tr'' ∧ sitem = item
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is' prefixby apply (Hprefix _ _ Heq_tr''). Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr': list transition_item
Htr': finite_constrained_trace_init_to Free is s tr'
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hprefix: strong_trace_witnessing_equivocation_prop is' tr''
item: transition_item
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Heq: equivocating_validators s ≡ equivocating_validators (destination item)
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr'': prefix ++ suffix' = tr''
Heq_item: sitem = item
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators sstrong_trace_witnessing_equivocation_prop is (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators sstrong_trace_witnessing_equivocation_prop is (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
prefix, suffix: list transition_item
Heq_tr''_item: prefix ++ suffix = tr ++ [item]trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
prefix, suffix: list transition_item
Heq_tr''_item: prefix ++ [] = tr ++ [item]
Hsuffix_eq: suffix = []trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr''_item: prefix ++ suffix' ++ [sitem] = tr ++ [item]
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
prefix, suffix: list transition_item
Heq_tr''_item: prefix ++ [] = tr ++ [item]
Hsuffix_eq: suffix = []trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
prefix, suffix: list transition_item
Heq_tr''_item: prefix = tr ++ [item]
Hsuffix_eq: suffix = []trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators strace_witnessing_equivocation_prop is (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validatorv' ∈ equivocating_validators (finite_trace_last is (tr ++ [item])) ↔ (∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validatorv' ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validatorv' ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: tr ++ [] = tr → trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validatorv' ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is trv' ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = sv' ∈ equivocating_validators (destination item) ↔ (∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item]))message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = sv' ∈ equivocating_validators (destination item) → ∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s(∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])) → v' ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = sv' ∈ equivocating_validators (destination item) → ∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
Hv': v' ∈ equivocating_validators (destination item)∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
Hv': v' ∈ {[v]} ∪ equivocating_validators s∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
Hv': v' = v ∨ v' ∈ equivocating_validators s∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
Hv': v' = v ∨ v' ∈ equivocating_validators (finite_trace_last is tr)∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
Heq_v: v' = v∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
Hv': v' ∈ equivocating_validators (finite_trace_last is tr)∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
Heq_v: v' = v∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators (finite_trace_last is tr)
Hprefix: trace_witnessing_equivocation_prop is tr∃ m : message, sender m = Some v ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators (finite_trace_last is tr)
Hprefix: trace_witnessing_equivocation_prop is trsender msg = Some v ∧ equivocation_in_trace PreFree msg (tr ++ [item])by eexists tr, _, [].message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr) tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators (finite_trace_last is tr)
Hprefix: trace_witnessing_equivocation_prop is trequivocation_in_trace PreFree msg (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
Hv': v' ∈ equivocating_validators (finite_trace_last is tr)∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
Hv': ∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m tr∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m tr∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m trsender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])by apply equivocation_in_trace_prefix.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m trequivocation_in_trace PreFree m (tr ++ [item])message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s(∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m (tr ++ [item])) → v' ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m (tr ++ [item])v' ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m tr ∨ input item = Some m ∧ ¬ trace_has_message (field_selector output) m trv' ∈ equivocating_validators (destination item)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m tr ∨ input item = Some m ∧ ¬ trace_has_message (field_selector output) m trv' = v ∨ v' ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m trv' = v ∨ v' ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m trv' = v ∨ v' ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m trv' = v ∨ v' ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m trv' = v ∨ v' ∈ equivocating_validators (finite_trace_last is tr)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m trv' ∈ equivocating_validators (finite_trace_last is tr)by exists m.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: equivocation_in_trace PreFree m tr∃ m : message, sender m = Some v' ∧ equivocation_in_trace PreFree m trmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m trv' = v ∨ v' ∈ equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m trv' = vby destruct Heqv as [Heq_om Heqv]; congruence.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
v': validator
Hprefix: trace_witnessing_equivocation_prop is tr
Hlst': finite_trace_last is tr = s
m: message
H13: sender m = Some v'
Heqv: input item = Some m ∧ ¬ trace_has_message (field_selector output) m trv' = vmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr''_item: prefix ++ suffix' ++ [sitem] = tr ++ [item]
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr''_item: (prefix ++ suffix') ++ [sitem] = tr ++ [item]
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr''_item: prefix ++ suffix' = tr ∧ sitem = item
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is prefixby apply (Hprefix _ _ Heq_tr''). Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hprefix: strong_trace_witnessing_equivocation_prop is tr
item: transition_item
msg: message
Hmsg: input item = Some msg
Hwneq: ¬ trace_has_message (field_selector output) msg tr
v: validator
Hsender: sender msg = Some v
Hneq: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s
prefix, suffix, suffix': list transition_item
sitem: transition_item
Heq_tr'': prefix ++ suffix' = tr
Heq_item: sitem = item
Hsuffix_eq: suffix = suffix' ++ [sitem]trace_witnessing_equivocation_prop is prefix
Proving that any state
(1) the length of a trace witnessing the equivocation of
For the induction step we assume that the witnessing trace leading to
The conclusion then follows by the two helper lemmas above.
s
has the strong_trace_witnessing_equivocation_property
proceeds via a more technical double induction over both:
s
; and
(2) the size of the set of equivocators of s
.
s
is
of the form tr ++ [item
. By Lemma equivocating_validators_witness_last_char
we know that either tr
is also a witnessing trace, in which case we can use
the induction hypothesis via property (1), or the set of equivocators for the
last state of tr
is strictly included in that of s
, allowing us to use
the induction hypothesis via property (2).
message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: state (preloaded_with_all_messages_vlsm Free)
Hs: constrained_state_prop Free s∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: state (preloaded_with_all_messages_vlsm Free)
Hs: constrained_state_prop Free s∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: state (preloaded_with_all_messages_vlsm Free)
Hs: ∃ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr ∧ trace_witnessing_equivocation_prop is tr∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hwitness: trace_witnessing_equivocation_prop is tr∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s, is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hwitness: trace_witnessing_equivocation_prop is tr
Hlst: finite_trace_last is tr = s∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is (finite_trace_last is tr) tr
Hwitness: trace_witnessing_equivocation_prop is tr∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace (preloaded_with_all_messages_vlsm Free) is tr
Hwitness: trace_witnessing_equivocation_prop is tr∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace (preloaded_with_all_messages_vlsm Free) is tr
Hwitness: trace_witnessing_equivocation_prop is tr
n: nat
Heqn: n = length tr∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace (preloaded_with_all_messages_vlsm Free) is tr
Hwitness: trace_witnessing_equivocation_prop is tr
n: nat
Heqn: n = length tr
m: nat
Heqm: m = set_size (equivocating_validators (finite_trace_last is tr))∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender∀ (m n : nat) (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_valid_trace (preloaded_with_all_messages_vlsm Free) is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop∀ (m n : nat) (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_valid_trace (preloaded_with_all_messages_vlsm Free) is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop∀ n m : nat, (∀ p q : nat, p < n → Pr p q) → (∀ p : nat, p < m → Pr n p) → Pr n mmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m pPr m nmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
tr: list transition_itemm = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
tr: list transition_item
Htr_eq: tr = []m = set_size (equivocating_validators (finite_trace_last is [])) → n = length [] → finite_constrained_trace Free is [] → trace_witnessing_equivocation_prop is [] → let s := finite_trace_last is [] in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
tr, tr': list transition_item
item: transition_item
Htr_eq: tr = tr' ++ [item]m = set_size (equivocating_validators (finite_trace_last is (tr' ++ [item]))) → n = length (tr' ++ [item]) → finite_constrained_trace Free is (tr' ++ [item]) → trace_witnessing_equivocation_prop is (tr' ++ [item]) → let s := finite_trace_last is (tr' ++ [item]) in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
tr: list transition_item
Htr_eq: tr = []m = set_size (equivocating_validators (finite_trace_last is [])) → n = length [] → finite_constrained_trace Free is [] → trace_witnessing_equivocation_prop is [] → let s := finite_trace_last is [] in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)m = set_size (equivocating_validators (finite_trace_last is [])) → n = length [] → finite_constrained_trace Free is [] → trace_witnessing_equivocation_prop is [] → let s := finite_trace_last is [] in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []let s := finite_trace_last is [] in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []finite_constrained_trace_init_to Free is (finite_trace_last is []) [] ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = [] → trace_witnessing_equivocation_prop is prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []finite_constrained_trace_init_to Free is (finite_trace_last is []) []message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []∀ prefix suffix : list transition_item, prefix ++ suffix = [] → trace_witnessing_equivocation_prop is prefixby apply finite_valid_trace_init_add_last.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []finite_constrained_trace_init_to Free is (finite_trace_last is []) []message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []∀ prefix suffix : list transition_item, prefix ++ suffix = [] → trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []
prefix, suffix: list transition_item
Heq_tr: prefix ++ suffix = []trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []
prefix, suffix: list transition_item
Heq_tr: prefix = [] ∧ suffix = []trace_witnessing_equivocation_prop is prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []
prefix, suffix: list transition_item
H13: prefix = []
H14: suffix = []trace_witnessing_equivocation_prop is prefixby apply initial_state_witnessing_equivocation_prop, Htr.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
Htr: finite_constrained_trace Free is []trace_witnessing_equivocation_prop is []message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
tr, tr': list transition_item
item: transition_item
Htr_eq: tr = tr' ++ [item]m = set_size (equivocating_validators (finite_trace_last is (tr' ++ [item]))) → n = length (tr' ++ [item]) → finite_constrained_trace Free is (tr' ++ [item]) → trace_witnessing_equivocation_prop is (tr' ++ [item]) → let s := finite_trace_last is (tr' ++ [item]) in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
tr, tr': list transition_item
item: transition_item
Htr_eq: tr = tr' ++ [item]m = set_size (equivocating_validators (destination item)) → n = length (tr' ++ [item]) → finite_constrained_trace Free is (tr' ++ [item]) → trace_witnessing_equivocation_prop is (tr' ++ [item]) → let s := destination item in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
tr, tr': list transition_item
item: transition_item
Htr_eq: tr = tr' ++ [item]
H13: m = set_size (equivocating_validators (destination item))
Hn: n = length (tr' ++ [item])
Htr'_item: finite_constrained_trace Free is (tr' ++ [item])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])let s := destination item in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
tr, tr': list transition_item
item: transition_item
Htr_eq: tr = tr' ++ [item]
H13: m = set_size (equivocating_validators (destination item))
Hn: n = length (tr' ++ [item])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is (destination item) (tr' ++ [item])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])let s := destination item in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : state (composite_type IM)) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → let s := finite_trace_last is tr in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: state (composite_type IM)
tr, tr': list transition_item
l: label (composite_type IM)
om: option message
s': state (composite_type IM)
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators (destination {| l := l; input := om; destination := s'; output := om' |}))
Hn: n = length (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is (destination {| l := l; input := om; destination := s'; output := om' |}) (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])let s := destination {| l := l; input := om; destination := s'; output := om' |} in ∃ (is' : state PreFree) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: composite_state IM
tr, tr': list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: composite_state IM
tr, tr': list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: composite_state IM
tr, tr': list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
msg: message
Heq_om: om = Some msg
v: validator
Hsender: sender msg = Some v
Hnv: v ∉ equivocating_validators (finite_trace_last is tr')
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators (finite_trace_last is tr') ∧ (∀ (is0 : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr') tr → trace_witnessing_equivocation_prop is0 tr → ¬ trace_has_message (field_selector output) msg tr)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: composite_state IM
tr, tr': list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
IHn: length tr' < n → Pr m (length tr')
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
IHn: length tr' < n → Pr m (length tr')
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + length [{| l := l; input := om; destination := s'; output := om' |}]
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
IHn: length tr' < n → Pr m (length tr')
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: Pr m (length tr')∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: m = set_size (equivocating_validators (finite_trace_last is tr')) → length tr' = length tr' → finite_constrained_trace Free is tr' → trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: length tr' = length tr' → finite_constrained_trace Free is tr' → trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: finite_constrained_trace Free is tr' → trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: finite_constrained_trace Free is tr' → trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: finite_constrained_trace Free is tr' → trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: finite_constrained_trace Free is tr' → trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: finite_constrained_trace Free is tr' → trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)finite_constrained_trace Free is tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: finite_constrained_trace Free is tr' → trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)finite_constrained_trace Free is tr'by apply finite_valid_trace_from_to_forget_last in Htr'.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: finite_constrained_trace Free is tr' → trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)finite_valid_trace_from (preloaded_with_all_messages_vlsm Free) is tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: trace_witnessing_equivocation_prop is tr' → ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
IHn: ∃ (is' : composite_state IM) (tr'0 : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr') tr'0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr'0 → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
is': composite_state IM
tr'': list transition_item
Htr'': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is' (finite_trace_last is tr') tr''
Hinit': initial_state_prop is'
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr'' → trace_witnessing_equivocation_prop is' prefix∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
is': composite_state IM
tr'': list transition_item
Htr'': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is' (finite_trace_last is tr') tr''
Hinit': initial_state_prop is'
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr'' → trace_witnessing_equivocation_prop is' prefix
Htr''_item: finite_valid_trace_from_to PreFree is' s' (tr'' ++ [{| l := l; input := om; destination := s'; output := om' |}])∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
is': composite_state IM
tr'': list transition_item
Htr'': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is' (finite_trace_last is tr') tr''
Hinit': initial_state_prop is'
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr'' → trace_witnessing_equivocation_prop is' prefix
Htr''_item: finite_valid_trace_from_to PreFree is' s' (tr'' ++ [{| l := l; input := om; destination := s'; output := om' |}])finite_constrained_trace_init_to Free is' s' ?Goal0 ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = ?Goal0 → trace_witnessing_equivocation_prop is' prefix)by apply (strong_trace_witnessing_equivocation_prop_extend_eq _ is tr' (conj Htr' Hinit)) ; [by split | done..].message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
tr': list transition_item
is: composite_state IM
tr: list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length tr' + 1
Htr': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr'
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := om; destination := s'; output := om' |}]
Hinit: initial_state_prop is
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Heq: equivocating_validators (finite_trace_last is tr') ≡ equivocating_validators s'
Hwitness': trace_witnessing_equivocation_prop is tr'
is': composite_state IM
tr'': list transition_item
Htr'': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is' (finite_trace_last is tr') tr''
Hinit': initial_state_prop is'
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr'' → trace_witnessing_equivocation_prop is' prefix
Htr''_item: finite_valid_trace_from_to PreFree is' s' (tr'' ++ [{| l := l; input := om; destination := s'; output := om' |}])∀ prefix suffix : list transition_item, prefix ++ suffix = tr'' ++ [{| l := l; input := om; destination := s'; output := om' |}] → trace_witnessing_equivocation_prop is' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
m, n: nat
IHm: ∀ p q : nat, p < m → Pr p q
IHn: ∀ p : nat, p < n → Pr m p
is: composite_state IM
tr, tr': list transition_item
l: composite_label IM
om: option message
s': composite_state IM
om': option message
Htr_eq: tr = tr' ++ [{| l := l; input := om; destination := s'; output := om' |}]
H13: m = set_size (equivocating_validators s')
Hn: n = length (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := om; destination := s'; output := om' |}])
msg: message
Heq_om: om = Some msg
v: validator
Hsender: sender msg = Some v
Hnv: v ∉ equivocating_validators (finite_trace_last is tr')
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators (finite_trace_last is tr') ∧ (∀ (is0 : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr') tr → trace_witnessing_equivocation_prop is0 tr → ¬ trace_has_message (field_selector output) msg tr)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Hnv: v ∉ equivocating_validators (finite_trace_last is tr')
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators (finite_trace_last is tr') ∧ (∀ (is0 : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr') tr → trace_witnessing_equivocation_prop is0 tr → ¬ trace_has_message (field_selector output) msg tr)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Hnv: v ∉ equivocating_validators (finite_trace_last is tr')
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators (finite_trace_last is tr')
Hwneq: ∀ (is0 : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is0 (finite_trace_last is tr') tr → trace_witnessing_equivocation_prop is0 tr → ¬ trace_has_message (field_selector output) msg tr∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
Hwitness': constrained_state_prop Free s → ∃ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr ∧ trace_witnessing_equivocation_prop is tr∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
Hwitness': constrained_state_prop Free s → ∃ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr ∧ trace_witnessing_equivocation_prop is trconstrained_state_prop Free smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
Hwitness': ∃ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr ∧ trace_witnessing_equivocation_prop is tr∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
Hwitness': constrained_state_prop Free s → ∃ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr ∧ trace_witnessing_equivocation_prop is trconstrained_state_prop Free sby subst.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: valid_state_prop (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr')
v: validator
Hsender: sender msg = Some v
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
Hwitness': constrained_state_prop Free s → ∃ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr ∧ trace_witnessing_equivocation_prop is trconstrained_state_prop Free smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
Hwitness': ∃ (is : state (preloaded_with_all_messages_vlsm Free)) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr ∧ trace_witnessing_equivocation_prop is tr∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
IHm: ∀ p q : nat, p < set_size (equivocating_validators s') → Pr p q
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
s: state (composite_type IM)
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
tr'': list transition_item
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: state (composite_type IM)
tr'': list transition_item
IHm: set_size (equivocating_validators s) < set_size (equivocating_validators s') → Pr (set_size (equivocating_validators s)) (length tr'')
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: state (composite_type IM)
tr'': list transition_item
IHm: set_size (equivocating_validators s) < set_size (equivocating_validators s') → Pr (set_size (equivocating_validators s)) (length tr'')
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''set_size (equivocating_validators s) < set_size (equivocating_validators s')message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: state (composite_type IM)
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
IHm: Pr (set_size (equivocating_validators s)) (length tr'')∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: state (composite_type IM)
tr'': list transition_item
IHm: set_size (equivocating_validators s) < set_size (equivocating_validators s') → Pr (set_size (equivocating_validators s)) (length tr'')
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''set_size (equivocating_validators s) < set_size (equivocating_validators s')message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: state (composite_type IM)
tr'': list transition_item
IHm: set_size (equivocating_validators s) < set_size (equivocating_validators s') → Pr (set_size (equivocating_validators s)) (length tr'')
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''set_size (equivocating_validators s) < set_size ({[v]} ∪ equivocating_validators s)by intro v'; rewrite elem_of_singleton; intros ->.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: state (composite_type IM)
tr'': list transition_item
IHm: set_size (equivocating_validators s) < set_size (equivocating_validators s') → Pr (set_size (equivocating_validators s)) (length tr'')
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''{[v]} ## equivocating_validators smessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: state (composite_type IM)
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
IHm: Pr (set_size (equivocating_validators s)) (length tr'')∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: state (composite_type IM)
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
IHm: set_size (equivocating_validators s) = set_size (equivocating_validators (finite_trace_last is' tr'')) → length tr'' = length tr'' → finite_constrained_trace Free is' tr'' → trace_witnessing_equivocation_prop is' tr'' → ∃ (is'0 : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is'0 (finite_trace_last is' tr'') tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is'0 prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: state (composite_type IM)
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': state (preloaded_with_all_messages_vlsm Free)
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
IHm: set_size (equivocating_validators s) = set_size (equivocating_validators (finite_trace_last is' tr'')) → length tr'' = length tr'' → finite_constrained_trace Free is' tr'' → trace_witnessing_equivocation_prop is' tr'' → ∃ (is'0 : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is'0 (finite_trace_last is' tr'') tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is'0 prefix)
Htr''_lst: finite_trace_last is' tr'' = s∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
IHm: set_size (equivocating_validators s) = set_size (equivocating_validators (finite_trace_last is' tr'')) → length tr'' = length tr'' → finite_constrained_trace Free is' tr'' → trace_witnessing_equivocation_prop is' tr'' → ∃ (is'0 : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is'0 (finite_trace_last is' tr'') tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is'0 prefix)
Htr''_lst: finite_trace_last is' tr'' = s∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
IHm: set_size (equivocating_validators s) = set_size (equivocating_validators s) → length tr'' = length tr'' → finite_constrained_trace Free is' tr'' → trace_witnessing_equivocation_prop is' tr'' → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)
Htr''_lst: finite_trace_last is' tr'' = s∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
IHm: finite_constrained_trace Free is' tr'' → trace_witnessing_equivocation_prop is' tr'' → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)
Htr''_lst: finite_trace_last is' tr'' = s∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
IHm: trace_witnessing_equivocation_prop is' tr'' → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
IHm: ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm Free) is s' (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
tr''': list transition_item
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': initial_state_prop is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
tr''': list transition_item
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': initial_state_prop is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
tr''': list transition_item
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
tr''': list transition_item
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [{| l := l; input := Some msg; destination := s'; output := om' |}]∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
tr''': list transition_item
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s' tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
tr''': list transition_item
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])finite_constrained_trace_init_to Free is'' s' ?Goal ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = ?Goal → trace_witnessing_equivocation_prop is'' prefix)message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
tr''': list transition_item
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}] → trace_witnessing_equivocation_prop is'' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
tr''': list transition_item
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Hwitness''': tr''' ++ [] = tr''' → trace_witnessing_equivocation_prop is'' tr'''∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}] → trace_witnessing_equivocation_prop is'' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
Hwneq: ∀ (is : composite_state IM) (tr : list transition_item), finite_constrained_trace_init_to Free is s tr → trace_witnessing_equivocation_prop is tr → ¬ trace_has_message (field_selector output) msg tr
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
tr''': list transition_item
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Hwitness''': trace_witnessing_equivocation_prop is'' tr'''∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}] → trace_witnessing_equivocation_prop is'' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
IHn: ∀ p : nat, p < length (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
tr''': list transition_item
Hwneq: ¬ trace_has_message (field_selector output) msg tr'''
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [{| l := l; input := Some msg; destination := s'; output := om' |}]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}])
Hwitness''': trace_witnessing_equivocation_prop is'' tr'''∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' ++ [{| l := l; input := Some msg; destination := s'; output := om' |}] → trace_witnessing_equivocation_prop is'' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
item: transition_item
Heqitem: item = {| l := l; input := Some msg; destination := s'; output := om' |}
IHn: ∀ p : nat, p < length (tr' ++ [item]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [item]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
tr''': list transition_item
Hwneq: ¬ trace_has_message (field_selector output) msg tr'''
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [item]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [item])
Hwitness''': trace_witnessing_equivocation_prop is'' tr'''∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' ++ [item] → trace_witnessing_equivocation_prop is'' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
item: transition_item
Heqitem: item = {| l := l; input := Some msg; destination := s'; output := om' |}
IHn: ∀ p : nat, p < length (tr' ++ [item]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [item]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
tr''': list transition_item
Hwneq: ¬ trace_has_message (field_selector output) msg tr'''
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [item]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [item])
Hwitness''': trace_witnessing_equivocation_prop is'' tr'''
Hextend: input item = Some msg → ¬ trace_has_message (field_selector output) msg tr''' → ∀ v : validator, sender msg = Some v → equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s → strong_trace_witnessing_equivocation_prop is'' (tr''' ++ [item])∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' ++ [item] → trace_witnessing_equivocation_prop is'' prefixmessage: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
item: transition_item
Heqitem: item = {| l := l; input := Some msg; destination := s'; output := om' |}
IHn: ∀ p : nat, p < length (tr' ++ [item]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [item]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
tr''': list transition_item
Hwneq: ¬ trace_has_message (field_selector output) msg tr'''
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [item]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [item])
Hwitness''': trace_witnessing_equivocation_prop is'' tr'''
Hextend: ¬ trace_has_message (field_selector output) msg tr''' → ∀ v : validator, sender msg = Some v → equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s → strong_trace_witnessing_equivocation_prop is'' (tr''' ++ [item])∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' ++ [item] → trace_witnessing_equivocation_prop is'' prefixby apply Hextend; subst. Qed.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
Pr:= λ m n : nat, ∀ (is : composite_state IM) (tr : list transition_item), m = set_size (equivocating_validators (finite_trace_last is tr)) → n = length tr → finite_constrained_trace Free is tr → trace_witnessing_equivocation_prop is tr → ∃ (is' : composite_state IM) (tr' : list transition_item), finite_constrained_trace_init_to Free is' (finite_trace_last is tr) tr' ∧ (∀ prefix suffix : list transition_item, prefix ++ suffix = tr' → trace_witnessing_equivocation_prop is' prefix): nat → nat → Prop
s': composite_state IM
tr': list transition_item
l: composite_label IM
om': option message
msg: message
item: transition_item
Heqitem: item = {| l := l; input := Some msg; destination := s'; output := om' |}
IHn: ∀ p : nat, p < length (tr' ++ [item]) → Pr (set_size (equivocating_validators s')) p
s: composite_state IM
tr'': list transition_item
is: composite_state IM
Hwitness: trace_witnessing_equivocation_prop is (tr' ++ [item])
Htr'_item: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is (finite_trace_last is tr') tr' ∧ finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) (finite_trace_last is tr') s' [item]
v: validator
Hsender: sender msg = Some v
Heqs: s = finite_trace_last is tr'
Hnv: v ∉ equivocating_validators s
Hneq: equivocating_validators s' ≡ {[v]} ∪ equivocating_validators s
tr''': list transition_item
Hwneq: ¬ trace_has_message (field_selector output) msg tr'''
is': composite_state IM
Htr'': finite_constrained_trace_init_to Free is' s tr''
Hwitness': trace_witnessing_equivocation_prop is' tr''
Htr''_lst: finite_trace_last is' tr'' = s
is'': composite_state IM
Htr''': finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) is'' s tr'''
Hinit': composite_initial_state_prop IM is''
Hprefix: ∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' → trace_witnessing_equivocation_prop is'' prefix
Hitem: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm Free) s s' [item]
Htr'''_item: finite_valid_trace_from_to PreFree is'' s' (tr''' ++ [item])
Hwitness''': trace_witnessing_equivocation_prop is'' tr'''
Hextend: equivocating_validators (destination item) ≡ {[v]} ∪ equivocating_validators s → strong_trace_witnessing_equivocation_prop is'' (tr''' ++ [item])∀ prefix suffix : list transition_item, prefix ++ suffix = tr''' ++ [item] → trace_witnessing_equivocation_prop is'' prefix
A version of Lemma preloaded_has_strong_trace_witnessing_equivocation_prop
guaranteeing that for any valid_state w.r.t. the Free composition there is
a trace ending in that state which is valid w.r.t. the Free composition and
it has the strong_trace_witnessing_equivocation_property.
message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: state Free
Hs: valid_state_prop Free s∃ (is' : state Free) (tr' : list transition_item), finite_valid_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: state Free
Hs: valid_state_prop Free s∃ (is' : state Free) (tr' : list transition_item), finite_valid_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: state Free
Hs: valid_state_prop Free s
Hpre_s: valid_state_prop {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} s∃ (is' : state Free) (tr' : list transition_item), finite_valid_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: state Free
Hs: valid_state_prop Free s
Hpre_s: ∃ (is' : state (preloaded_with_all_messages_vlsm Free)) (tr' : list transition_item), finite_constrained_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'∃ (is' : state Free) (tr' : list transition_item), finite_valid_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: state Free
Hs: valid_state_prop Free s
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_constrained_trace_init_to Free is s tr
Hwitness: strong_trace_witnessing_equivocation_prop is tr∃ (is' : state Free) (tr' : list transition_item), finite_valid_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'by exists is, tr. Qed. End sec_witnessed_equivocation_properties. End sec_witnessed_equivocation.message: Type
EqDecision0: EqDecision message
index: Type
EqDecision1: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
H1: ∀ i : index, HasBeenReceivedCapability (IM i)
validator: Type
EqDecision2: EqDecision validator
H2: finite.Finite validator
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
threshold: R
Cv: Type
Hm: Measurable.Measurable validator
H3: ElemOf validator Cv
H4: Empty Cv
H5: Singleton validator Cv
H6: Union Cv
H7: Intersection Cv
H8: Difference Cv
H9: Elements validator Cv
EqDecision3: EqDecision validator
H10: FinSet validator Cv
H11: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
H12: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability
Hsender_safety: sender_safety_alt_prop IM A sender
s: state Free
Hs: valid_state_prop Free s
is: state (preloaded_with_all_messages_vlsm Free)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) is s tr
Hwitness: strong_trace_witnessing_equivocation_prop is tr∃ (is' : state Free) (tr' : list transition_item), finite_valid_trace_init_to Free is' s tr' ∧ strong_trace_witnessing_equivocation_prop is' tr'
Witnessed equivocation and fixed-set equivocation
Section sec_witnessed_equivocation_fixed_set. Context {message : Type} `{FinSet index Ci} `{!finite.Finite index} (IM : index -> VLSM message) `{forall i, HasBeenSentCapability (IM i)} `{forall i, HasBeenReceivedCapability (IM i)} (threshold : R) `{finite.Finite validator} `{ReachableThreshold validator Cv threshold} (A : validator -> index) (sender : message -> option validator) (Free := free_composite_vlsm IM) `{RelDecision _ _ (is_equivocating_tracewise_no_has_been_sent IM A sender)} (Htracewise_BasicEquivocation : BasicEquivocation (composite_state IM) validator Cv threshold := equivocation_dec_tracewise IM threshold A sender) `{FinSet message Cm} (message_dependencies : message -> Cm) `{!Irreflexive (msg_dep_happens_before message_dependencies)} `{forall i, MessageDependencies (IM i) message_dependencies} (Hfull : forall i, message_dependencies_full_node_condition_prop (IM i) message_dependencies) (no_initial_messages_in_IM : no_initial_messages_in_IM_prop IM) (can_emit_signed : channel_authentication_prop IM A sender) (Hsender_safety : sender_safety_alt_prop IM A sender := channel_authentication_sender_safety IM A sender can_emit_signed) (Free_has_sender := free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM) (equivocating_validators := equivocating_validators (BasicEquivocation := Htracewise_BasicEquivocation)) . Existing Instance Htracewise_BasicEquivocation.
Given the fact that the set of equivocating_validators can be empty,
and the definition of the fixed_equivocation_constraint requires
a non-empty set (to allow the composition of equivocators to exist),
we default the constraint to the composite_no_equivocation one
when there are no equivocating_validators.
Definition equivocating_validators_fixed_equivocation_constraint (s : composite_state IM) := fixed_equivocation_constraint IM (Ci := Ci) (fin_sets.set_map A (equivocating_validators s)).message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
Hmsg: valid_message_prop Free m
v: validator
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
Hmsg: valid_message_prop Free m
v: validator
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
Hiom: can_emit Free m
v: validator
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
Hiom: can_emit {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} m
v: validator
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
_v: index
Hiom: can_emit (preloaded_with_all_messages_vlsm (IM _v)) m
v: validator
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
_v: index
Hiom: can_emit (preloaded_with_all_messages_vlsm (IM _v)) m
v: validator
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Heq_v: A v = _vcan_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
_v: index
Hiom: can_emit (preloaded_with_all_messages_vlsm (IM _v)) m
v: validator
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Heq_v: A v = _vcan_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_with_all_messages_vlsm (IM (A v))) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Hproj: (∀ m0 : message, (λ msg : message, msg ∈ message_dependencies m) m0 → composite_has_been_directly_observed IM s m0) → ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Hproj: (∀ m0 : message, (λ msg : message, msg ∈ message_dependencies m) m0 → composite_has_been_directly_observed IM s m0) → ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)∀ m0 : message, m0 ∈ message_dependencies m → composite_has_been_directly_observed IM s m0message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Hproj: ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Hproj: (∀ m0 : message, (λ msg : message, msg ∈ message_dependencies m) m0 → composite_has_been_directly_observed IM s m0) → ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)∀ m0 : message, m0 ∈ message_dependencies m → composite_has_been_directly_observed IM s m0message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Hproj: (∀ m0 : message, (λ msg : message, msg ∈ message_dependencies m) m0 → composite_has_been_directly_observed IM s m0) → ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)
dm: message
Hdm: dm ∈ message_dependencies mcomposite_has_been_directly_observed IM s dmmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
i: index
li: label (IM i)
s: composite_state IM
Hv: composite_valid IM (existT i li) (s, Some m)
Hproj: (∀ m0 : message, (λ msg : message, msg ∈ message_dependencies m) m0 → composite_has_been_directly_observed IM s m0) → ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)
dm: message
Hdm: dm ∈ message_dependencies mcomposite_has_been_directly_observed IM s dmmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
i: index
li: label (IM i)
s: composite_state IM
Hv: valid li (s i, Some m)
Hproj: (∀ m0 : message, (λ msg : message, msg ∈ message_dependencies m) m0 → composite_has_been_directly_observed IM s m0) → ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)
dm: message
Hdm: dm ∈ message_dependencies mcomposite_has_been_directly_observed IM s dmby exists i.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
i: index
li: label (IM i)
s: composite_state IM
Hv: valid li (s i, Some m)
Hproj: (∀ m0 : message, (λ msg : message, msg ∈ message_dependencies m) m0 → composite_has_been_directly_observed IM s m0) → ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)
dm: message
Hdm: has_been_directly_observed (IM i) (s i) dmcomposite_has_been_directly_observed IM s dmmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Hproj: ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) mmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Hproj: ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)VLSM_embedding (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) ?label_project ?state_projectby apply elem_of_elements, elem_of_map_2. Qed.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
m: message
v: validator
Hiom: can_emit (preloaded_vlsm (IM (A v)) (λ msg : message, msg ∈ message_dependencies m)) m
Hsender: sender m = Some v
sf: composite_state IM
Hequivocating_v: v ∈ equivocating_validators sf
l: composite_label IM
s: composite_state IM
Hv: composite_valid IM l (s, Some m)
Hproj: ∀ j : sub_index (elements (set_map A (equivocating_validators sf))), VLSM_embedding (preloaded_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))) j) (λ msg : message, msg ∈ message_dependencies m)) (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements (set_map A (equivocating_validators sf))))) (composite_has_been_directly_observed IM s)) (lift_to_composite_label (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j) (lift_to_composite_state' (sub_IM IM (elements (set_map A (equivocating_validators sf)))) j)sub_index_prop (elements (set_map A (equivocating_validators sf))) (A v)
Main result of the section
message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
is, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) is s tr
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender is trfinite_valid_trace_init_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) is s trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
is, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) is s tr
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender is trfinite_valid_trace_init_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) is s trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
is, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) is s tr
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender is trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) is s trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si: state (free_composite_vlsm IM)
Hsi: initial_state_prop si
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si []finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators si))) si si []message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: strong_trace_witnessing_equivocation_prop IM threshold A sender si tr → finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si sf (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si: state (free_composite_vlsm IM)
Hsi: initial_state_prop si
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si []finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators si))) si si []by apply initial_state_is_valid.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si: state (free_composite_vlsm IM)
Hsi: initial_state_prop si
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si []valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators si))) simessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: strong_trace_witnessing_equivocation_prop IM threshold A sender si tr → finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si sf (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: strong_trace_witnessing_equivocation_prop IM threshold A sender si tr → finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s trstrong_trace_witnessing_equivocation_prop IM threshold A sender si trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si sf (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: strong_trace_witnessing_equivocation_prop IM threshold A sender si tr → finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s trstrong_trace_witnessing_equivocation_prop IM threshold A sender si trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: strong_trace_witnessing_equivocation_prop IM threshold A sender si tr → finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s tr
prefix: list transition_item∀ suffix : list transition_item, prefix ++ suffix = tr → trace_witnessing_equivocation_prop IM threshold A sender si prefixmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: strong_trace_witnessing_equivocation_prop IM threshold A sender si tr → finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s tr
prefix, suffix: list transition_item
H30: prefix ++ suffix = trtrace_witnessing_equivocation_prop IM threshold A sender si prefixby subst; apply app_assoc.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: strong_trace_witnessing_equivocation_prop IM threshold A sender si tr → finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s tr
prefix, suffix: list transition_item
H30: prefix ++ suffix = trprefix ++ suffix ++ [{| l := l; input := iom; destination := sf; output := oom |}] = tr ++ [{| l := l; input := iom; destination := sf; output := oom |}]message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si sf (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s tr
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si sf (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s tr
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s tr
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si sf (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s tr
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s tr → finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s trelements (set_map A (equivocating_validators s)) ⊆ elements (set_map A (equivocating_validators sf))message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s trequivocating_validators s ⊆ equivocating_validators sfmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [item])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s trequivocating_validators s ⊆ equivocating_validators sfmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [item])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s trequivocating_validators s ⊆ equivocating_validators (destination item)by apply Heqv with (suffix := []), app_nil_r.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
item: transition_item
Heqitem: item = {| l := l; input := iom; destination := sf; output := oom |}
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [item])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s trtrace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [item])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
IHHtr: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators s))) si s tr
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si sf (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s trfinite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si sf (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Ht: input_valid_transition (free_composite_vlsm IM) l ( s, iom) (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s trinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, iom) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) iom
Hv: valid l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s trinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, iom) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) iom
Hv: valid l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) sinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, iom) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) iom
Hv: valid l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
Heqv: (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}]) ++ [] = tr ++ [{| l := l; input := iom; destination := sf; output := oom |}] → trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) sinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, iom) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
iom, oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) iom
Hv: valid l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
Heqv: trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])input_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, iom) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
Heqv: trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}])input_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
Heqv: trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}])
_Hsender: sender im ≠ Noneinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
Heqv: trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}])
v: validator
Hsender: sender im = Some v
_Hsender: Some v ≠ Noneinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
Heqv: trace_witnessing_equivocation_prop IM threshold A sender si (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}])
v: validator
Hsender: sender im = Some vinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators (finite_trace_last si (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}])) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some vinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators (destination {| l := l; input := Some im; destination := sf; output := oom |}) ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some vinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some vinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some vconstrained_state_prop Free smessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free sinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)by apply proj1, finite_valid_trace_from_to_last_pstate in Hpre_tr.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some vconstrained_state_prop Free smessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free sinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
c: composite_has_been_directly_observed IM s iminput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s iminput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
c: composite_has_been_directly_observed IM s iminput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
c: composite_has_been_directly_observed IM s imvalid_message_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
c: composite_has_been_directly_observed IM s imfixed_equivocation_constraint IM (set_map A (equivocating_validators sf)) l (s, Some im)by apply (composite_directly_observed_valid IM _ s).message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
c: composite_has_been_directly_observed IM s imvalid_message_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) imby left.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
c: composite_has_been_directly_observed IM s imfixed_equivocation_constraint IM (set_map A (equivocating_validators sf)) l (s, Some im)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s iminput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s imv ∈ equivocating_validators sfmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Hequivocating_v: v ∈ equivocating_validators sfinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s imv ∈ equivocating_validators sfmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s imsender im = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) im (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s imequivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) im (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}])message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s imtr ++ [{| l := l; input := Some im; destination := sf; output := oom |}] = tr ++ [?Goal0] ∧ input ?Goal0 = Some im ∧ ¬ trace_has_message (field_selector output) im trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s iminput {| l := l; input := Some im; destination := sf; output := oom |} = Some im ∧ ¬ trace_has_message (field_selector output) im trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im¬ trace_has_message (field_selector output) im trmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Him_output: trace_has_message (field_selector output) im trFalsemessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Him_output: trace_has_message (field_selector output) im trcomposite_has_been_directly_observed IM s immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Him_output: trace_has_message (field_selector output) im trcomposite_has_been_sent IM s im ∨ composite_has_been_received IM s immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Him_output: trace_has_message (field_selector output) im trcomposite_has_been_sent IM s immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Him_output: trace_has_message (field_selector output) im tr
Hsent_s: has_been_sent_prop Free (has_been_sent Free) s imcomposite_has_been_sent IM s immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Him_output: trace_has_message (field_selector output) im tr
Hsent_s: selected_message_exists_in_all_preloaded_traces Free (field_selector output) s im → has_been_sent Free s imcomposite_has_been_sent IM s immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Him_output: trace_has_message (field_selector output) im tr
Hsent_s: selected_message_exists_in_all_preloaded_traces Free (field_selector output) s im → has_been_sent Free s imselected_message_exists_in_all_preloaded_traces Free (field_selector output) s immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Him_output: trace_has_message (field_selector output) im trselected_message_exists_in_all_preloaded_traces Free (field_selector output) s imby exists si, tr, Hpre_tr.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Him_output: trace_has_message (field_selector output) im trselected_message_exists_in_some_preloaded_traces Free (field_selector output) s immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Hequivocating_v: v ∈ equivocating_validators sfinput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Hequivocating_v: v ∈ equivocating_validators sf
Hemit_im: can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) iminput_valid_transition (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) l (s, Some im) (sf, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Hequivocating_v: v ∈ equivocating_validators sf
Hemit_im: can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) imoption_valid_message_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) (Some im)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Hequivocating_v: v ∈ equivocating_validators sf
Hemit_im: can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) imcan_emit (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Hequivocating_v: v ∈ equivocating_validators sf
Hemit_im: can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) im
Hproj: (∀ (i : index) (m : message), i ∈ set_map A (equivocating_validators sf) → ¬ initial_message_prop m) → VLSM_weak_embedding (equivocators_composition_for_sent IM (set_map A (equivocating_validators sf)) s) (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) (lift_sub_label IM (elements (set_map A (equivocating_validators sf)))) (lift_sub_state_to IM (elements (set_map A (equivocating_validators sf))) s)can_emit (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) immessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Hequivocating_v: v ∈ equivocating_validators sf
Hemit_im: can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) im
Hproj: VLSM_weak_embedding (equivocators_composition_for_sent IM (set_map A (equivocating_validators sf)) s) (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) (lift_sub_label IM (elements (set_map A (equivocating_validators sf)))) (lift_sub_state_to IM (elements (set_map A (equivocating_validators sf))) s)can_emit (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) imby apply (VLSM_incl_can_emit (Equivocators_Fixed_Strong_incl IM _ _ Hs')). Qed.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
si, s: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) si s tr
sf: state (free_composite_vlsm IM)
im: message
oom: option message
l: label (free_composite_vlsm IM)
Hs: valid_state_prop (free_composite_vlsm IM) s
Hiom: option_valid_message_prop (free_composite_vlsm IM) (Some im)
Hv: valid l (s, Some im)
Ht: transition l (s, Some im) = (sf, oom)
Hpre_tr: finite_valid_trace_init_to {| vlsm_type := Free; vlsm_machine := preloaded_with_all_messages_vlsm Free |} si s tr
Htr_sf: finite_valid_trace_from_to (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) si s tr
Hs': valid_state_prop (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) s
v: validator
Heqv: v ∈ Equivocation.equivocating_validators sf ↔ (∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (tr ++ [{| l := l; input := Some im; destination := sf; output := oom |}]))
Hsender: sender im = Some v
Hpre_s: constrained_state_prop Free s
n: ¬ composite_has_been_directly_observed IM s im
Hequivocating_v: v ∈ equivocating_validators sf
Hemit_im: can_emit (equivocators_composition_for_directly_observed IM (set_map A (equivocating_validators sf)) s) im
Hproj: VLSM_weak_embedding (equivocators_composition_for_sent IM (set_map A (equivocating_validators sf)) s) (fixed_equivocation_vlsm_composition IM (set_map A (equivocating_validators sf))) (lift_sub_label IM (elements (set_map A (equivocating_validators sf)))) (lift_sub_state_to IM (elements (set_map A (equivocating_validators sf))) s)can_emit (equivocators_composition_for_sent IM (set_map A (equivocating_validators sf)) s) im
As a corollary of the above, every valid state for the free composition is
also a valid state for the composition with the
equivocating_validators_fixed_equivocation_constraint induced by it.
message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability IM threshold A sender∀ s : state Free, valid_state_prop Free s → valid_state_prop (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) smessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability IM threshold A sender∀ s : state Free, valid_state_prop Free s → valid_state_prop (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) smessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability IM threshold A sender
s: state Free
Hs: valid_state_prop Free svalid_state_prop (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) smessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability IM threshold A sender
s: state Free
Hs: valid_state_prop Free s
is: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) is s tr
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender is trvalid_state_prop (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) smessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability IM threshold A sender
s: state Free
Hs: valid_state_prop Free s
is: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) is s tr
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender is trfinite_valid_trace_from_to (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) is s tr → valid_state_prop (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) smessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability IM threshold A sender
s: state Free
Hs: valid_state_prop Free s
is: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) is s tr
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender is trfinite_valid_trace_from_to (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) is s trby intro Htr'; apply finite_valid_trace_from_to_last_pstate in Htr'.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability IM threshold A sender
s: state Free
Hs: valid_state_prop Free s
is: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) is s tr
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender is trfinite_valid_trace_from_to (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) is s tr → valid_state_prop (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) sby apply strong_witness_has_fixed_equivocation. Qed. End sec_witnessed_equivocation_fixed_set.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H6: FinSet index Ci
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator: Type
EqDecision1: EqDecision validator
H10: finite.Finite validator
Cv: Type
Hm: Measurable.Measurable validator
H11: ElemOf validator Cv
H12: Empty Cv
H13: Singleton validator Cv
H14: Union Cv
H15: Intersection Cv
H16: Difference Cv
H17: Elements validator Cv
EqDecision2: EqDecision validator
H18: FinSet validator Cv
H19: ReachableThreshold validator Cv threshold
A: validator → index
sender: message → option validator
Free:= free_composite_vlsm IM: VLSM message
H20: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
Htracewise_BasicEquivocation:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
Cm: Type
H21: ElemOf message Cm
H22: Empty Cm
H23: Singleton message Cm
H24: Union Cm
H25: Intersection Cm
H26: Difference Cm
H27: Elements message Cm
EqDecision3: EqDecision message
H28: FinSet message Cm
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H29: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
Hsender_safety:= channel_authentication_sender_safety IM A sender can_emit_signed: sender_safety_alt_prop IM A sender
Free_has_sender:= free_composite_no_initial_valid_messages_have_sender IM A sender can_emit_signed no_initial_messages_in_IM: ∀ m : message, valid_message_prop (free_composite_vlsm IM) m → sender m ≠ None
equivocating_validators:= Equivocation.equivocating_validators: composite_state IM → Cv
Hke: WitnessedEquivocationCapability IM threshold A sender
s: state Free
Hs: valid_state_prop Free s
is: state (free_composite_vlsm IM)
tr: list transition_item
Htr: finite_valid_trace_init_to (free_composite_vlsm IM) is s tr
Heqv: strong_trace_witnessing_equivocation_prop IM threshold A sender is trfinite_valid_trace_from_to (composite_vlsm IM (equivocating_validators_fixed_equivocation_constraint s)) is s tr