From Coq Require Import FunctionalExtensionality Reals.From VLSM.Lib Require Import Measurable RealsExtras. From VLSM.Core Require Import VLSM MessageDependencies VLSMProjections Composition ProjectionTraces. From VLSM.Core Require Import SubProjectionTraces AnnotatedVLSM Equivocation. From VLSM.Core Require Import ByzantineTraces.FixedSetByzantineTraces. From VLSM.Core Require Import Equivocation.FixedSetEquivocation. From VLSM.Core Require Import Equivocation.LimitedMessageEquivocation. From VLSM.Core Require Import Equivocation.MsgDepLimitedEquivocation. From VLSM.Core Require Import Equivocation.TraceWiseEquivocation.
Core: VLSM Compositions with Byzantine Components of Limited Weight
Section sec_limited_byzantine_traces. Context {message : Type} `{FinSet index Ci} `{!finite.Finite index} (IM : index -> VLSM message) `{forall i : index, HasBeenSentCapability (IM i)} `{forall i : index, HasBeenReceivedCapability (IM i)} (threshold : R) `{ReachableThreshold validator Cv threshold} `{!finite.Finite validator} (A : validator -> index) `{!Inj (=) (=) A} (sender : message -> option validator) .
We define the limited_byzantine_trace_property in two steps. First, we
leverage the fixed_byzantine_trace_alt_property by assuming a fixed selection
of
byzantine
components whose added weight is below the ReachableThreshold.
Definition fixed_limited_byzantine_trace_prop
(s : composite_state IM)
(tr : list (composite_transition_item IM))
(byzantine_vs : Cv)
(byzantine := fin_sets.set_map A byzantine_vs : Ci)
: Prop
:= (sum_weights byzantine_vs <= threshold)%R /\
fixed_byzantine_trace_alt_prop (Ci := Ci) IM byzantine A sender s tr.
The union of traces with the fixed_limited_byzantine_trace_property over
all possible selections of (limited) byzantine components.
Definition limited_byzantine_trace_prop (s : composite_state IM) (tr : list (composite_transition_item IM)) : Prop := exists byzantine, fixed_limited_byzantine_trace_prop s tr byzantine. Context `{FinSet message Cm} {is_equivocating_tracewise_no_has_been_sent_dec : RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)} (limited_constraint := tracewise_limited_equivocation_constraint (Cv := Cv) IM threshold A sender) (Limited : VLSM message := composite_vlsm IM limited_constraint) (Hvalidator : forall i : index, component_message_validator_prop IM limited_constraint i) (no_initial_messages_in_IM : no_initial_messages_in_IM_prop IM) (can_emit_signed : channel_authentication_prop IM A sender) (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) .
Assuming the byzantine components are known
byzantine
components of limited weight and
analyze traces with the fixed_limited_byzantine_trace_property w.r.t. that
selection.
Section sec_fixed_limited_selection. Context (byzantine_vs : Cv) (byzantine : Ci := fin_sets.set_map A byzantine_vs ) (non_byzantine : Ci := difference (list_to_set (enum index)) byzantine) (Hlimit : (sum_weights byzantine_vs <= threshold)%R) (PreNonByzantine := preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (HBE : BasicEquivocation (composite_state IM) validator Cv threshold := equivocation_dec_tracewise IM threshold A sender) .
When replacing the byzantine components of a composite valid_state with
initial states for those machines we obtain a state which is not_heavy.
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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IMnot_heavy sXmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IMnot_heavy sXmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IMequivocating_validators sX ⊆ byzantine_vs → not_heavy sXmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IMequivocating_validators sX ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IMequivocating_validators sX ⊆ byzantine_vs → not_heavy sXmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vsnot_heavy sXmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vs(equivocation_fault sX <= threshold)%Rmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vs(equivocation_fault sX <= sum_weights byzantine_vs)%Rmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vsNoDup (elements (equivocating_validators sX))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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vsNoDup (elements byzantine_vs)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vselements (equivocating_validators sX) ⊆ elements byzantine_vsby apply NoDup_elements.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vsNoDup (elements (equivocating_validators sX))by apply NoDup_elements.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vsNoDup (elements byzantine_vs)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vselements (equivocating_validators sX) ⊆ elements byzantine_vsby apply elem_of_elements, Hincl, elem_of_elements, Hi.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hincl: equivocating_validators sX ⊆ byzantine_vs
i: validator
Hi: i ∈ elements (equivocating_validators sX)i ∈ elements byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantine
Hs: valid_state_prop PreNonByzantine s
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IMequivocating_validators sX ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
tr: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s tr
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IMequivocating_validators sX ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
tr: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s tr
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))equivocating_validators sX ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
tr: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s tr
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj tr)equivocating_validators sX ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
tr: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s tr
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj tr)
v: validator
Hv: v ∈ equivocating_validators sXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
tr: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s tr
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj tr)
v: validator
Hv: v ∈ equivocating_validators sX
Hvs': is_equivocating_tracewise_no_has_been_sent IM A sender sX vv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
tr: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s tr
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj tr)
v: validator
Hv: v ∈ equivocating_validators sX
Hvs': ∃ m : message, sender m = Some v ∧ equivocation_in_trace (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) m (VLSM_embedding_finite_trace_project Hproj tr)v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
tr: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s tr
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj tr)
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX: list transition_item
itemX: transition_item
sufX: list transition_item
Htr_pr: VLSM_embedding_finite_trace_project Hproj tr = preX ++ itemX :: sufX
Hm0: input itemX = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
tr: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s tr
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj tr)
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX: list transition_item
itemX: transition_item
sufX, pre, item_suf: list transition_item
Heqtr: tr = pre ++ item_suf
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hitem_suf_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) item_suf = itemX :: sufX
Hm0: input itemX = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
tr: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s tr
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj tr)
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX: list transition_item
itemX: transition_item
sufX, pre, item_suf: list transition_item
Heqtr: tr = pre ++ item_suf
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
item: transition_item
suf: list transition_item
Heqitem_suf: item_suf = item :: suf
Hitem_pr: pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) item = itemX
Hsuf_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) suf = sufX
Hm0: input itemX = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s (pre ++ item :: suf)
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX: list transition_item
itemX: transition_item
sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hitem_pr: pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) item = itemX
Hsuf_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) suf = sufX
Hm0: input itemX = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s (pre ++ item :: suf)
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX: list transition_item
itemX: transition_item
sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hitem_pr: pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) item = itemX
Hm0: input itemX = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s (pre ++ item :: suf)
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX, sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hm0: input (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) item) = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s (pre ++ item :: suf)
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX, sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hm0: input item = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Htr: finite_valid_trace_init_to PreNonByzantine is s (pre ++ [item] ++ suf)
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX, sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hm0: input item = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Htr: finite_valid_trace_from_to PreNonByzantine is s (pre ++ [item] ++ suf)
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX, sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hm0: input item = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Htr: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre ∧ finite_valid_trace_from_to PreNonByzantine (finite_trace_last is pre) s ([item] ++ suf)
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX, sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hm0: input item = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
Hitem: finite_valid_trace_from_to PreNonByzantine (finite_trace_last is pre) s ([item] ++ suf)
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX, sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hm0: input item = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preXv ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
Hitem: finite_valid_trace_from_to PreNonByzantine (finite_trace_last is pre) s ([item] ++ suf)
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX, sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hm0: input item = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preX
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
Hitem: finite_valid_trace_from_to PreNonByzantine (finite_trace_last is pre) s ([item] ++ suf)
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX, sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hm0: input item = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preX
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre: list transition_item
item: transition_item
suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
Hitem: finite_valid_trace_from_to PreNonByzantine (finite_trace_last is pre) (finite_trace_last (finite_trace_last is pre) [item]) [item]
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ item :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
preX, sufX: list transition_item
Hpre_pr: map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre = preX
Hm0: input item = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 preX
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
iom, oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := iom; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
sufX: list transition_item
Hm0: input {| l := l; input := iom; destination := s0; output := oom |} = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Ht: input_valid_transition PreNonByzantine l (finite_trace_last is pre, iom) ( s0, oom)v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
iom, oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := iom; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
m0: message
Hsender0: sender m0 = Some v
sufX: list transition_item
Hm0: iom = Some m0
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Ht: input_valid_transition PreNonByzantine l (finite_trace_last is pre, iom) ( s0, oom)v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Ht: input_valid_transition PreNonByzantine l (finite_trace_last is pre, Some m0) ( s0, oom)v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hc: NoEquivocation.composite_no_equivocations_except_from (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) (fixed_set_signed_message IM byzantine A sender) l (finite_trace_last is pre, Some m0)v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
sub_i: sub_index (elements (list_to_set (enum index) ∖ byzantine))
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) sub_i) ((finite_trace_last is pre, Some m0).1 sub_i) m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
sub_i: sub_index (elements (list_to_set (enum index) ∖ byzantine))
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) sub_i) ((finite_trace_last is pre, Some m0).1 sub_i) m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi)) ((finite_trace_last is pre, Some m0).1 (dexist i Hi)) m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi)) ((finite_trace_last is pre, Some m0).1 (dexist i Hi)) m0composite_has_been_sent IM (lift_sub_state IM (elements non_byzantine) (finite_trace_last is pre)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi)) ((finite_trace_last is pre, Some m0).1 (dexist i Hi)) m0
Hsent: composite_has_been_sent IM (lift_sub_state IM (elements non_byzantine) (finite_trace_last is pre)) m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi)) ((finite_trace_last is pre, Some m0).1 (dexist i Hi)) m0composite_has_been_sent IM (lift_sub_state IM (elements non_byzantine) (finite_trace_last is pre)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi)) ((finite_trace_last is pre, Some m0).1 (dexist i Hi)) m0has_been_sent (IM i) (lift_sub_state IM (elements non_byzantine) (finite_trace_last is pre) i) m0by rewrite (lift_sub_state_to_eq _ _ _ _ _ Hi).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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi)) ((finite_trace_last is pre, Some m0).1 (dexist i Hi)) m0has_been_sent (IM i) (lift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) (finite_trace_last is pre) i) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi)) ((finite_trace_last is pre, Some m0).1 (dexist i Hi)) m0
Hsent: composite_has_been_sent IM (lift_sub_state IM (elements non_byzantine) (finite_trace_last is pre)) m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi)) ((finite_trace_last is pre, Some m0).1 (dexist i Hi)) m0
Hsent: selected_message_exists_in_all_preloaded_traces (free_composite_vlsm IM) (field_selector output) (lift_sub_state IM (elements non_byzantine) (finite_trace_last is pre)) m0v ∈ byzantine_vsby specialize (Hsent _ _ (conj Hpre_pre Hinit)).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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is)
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Hsenti: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi)) ((finite_trace_last is pre, Some m0).1 (dexist i Hi)) m0
Hsent: selected_message_exists_in_all_preloaded_traces (free_composite_vlsm IM) (field_selector output) (lift_sub_state IM (elements non_byzantine) (finite_trace_last is pre)) m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hi: i ∉ elements (list_to_set (enum index) ∖ byzantine)
Hsigned: channel_authenticated_message A sender i m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hi: i ∉ elements (list_to_set (enum index) ∖ byzantine)
Hsigned: channel_authenticated_message A sender i m0v ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hi: i ∉ elements (list_to_set (enum index) ∖ byzantine)
Hsigned: channel_authenticated_message A sender i m0
e: i ∈ byzantinev ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hi: i ∉ elements (list_to_set (enum index) ∖ byzantine)
Hsigned: channel_authenticated_message A sender i m0
n: i ∉ byzantinev ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hi: i ∉ elements (list_to_set (enum index) ∖ byzantine)
Hsigned: channel_authenticated_message A sender i m0
e: i ∈ byzantinev ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hi: i ∉ elements (list_to_set (enum index) ∖ byzantine)
Hsigned: option_map A (sender m0) = Some i
e: i ∈ byzantinev ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hi: i ∉ elements (list_to_set (enum index) ∖ byzantine)
Hsigned: option_map A (Some v) = Some i
e: i ∈ byzantinev ∈ byzantine_vsby revert e; apply elem_of_set_map_inj.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
Hi: A v ∉ elements (list_to_set (enum index) ∖ byzantine)
e: A v ∈ byzantinev ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hi: i ∉ elements (list_to_set (enum index) ∖ byzantine)
Hsigned: channel_authenticated_message A sender i m0
n: i ∉ byzantinev ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hi: i ∉ list_to_set (enum index) ∖ byzantine
Hsigned: channel_authenticated_message A sender i m0
n: i ∉ byzantinev ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hsigned: channel_authenticated_message A sender i m0
n: i ∉ byzantinei ∈ list_to_set (enum index) ∖ byzantineby apply elem_of_list_to_set, elem_of_enum. Qed. Existing Instance HBE.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s, is: state PreNonByzantine
pre, suf: list transition_item
Hpre: finite_valid_trace_from_to PreNonByzantine is (finite_trace_last is pre) pre
s0: state PreNonByzantine
oom: option message
l: label PreNonByzantine
Hinit: initial_state_prop is
sX:= lift_sub_state IM (elements non_byzantine) s: composite_state IM
Hproj: VLSM_embedding (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))
m0: message
Hpre_tr: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) s) (VLSM_embedding_finite_trace_project Hproj (pre ++ {| l := l; input := Some m0; destination := s0; output := oom |} :: suf))
v: validator
Hv: v ∈ equivocating_validators sX
Hsender0: sender m0 = Some v
sufX: list transition_item
Heqv: ¬ trace_has_message (field_selector output) m0 (map (pre_VLSM_embedding_transition_item_project (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) pre)
Hpre_pre: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) is) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre)) (VLSM_embedding_finite_trace_project Hproj pre)
Hs_pre: valid_state_prop (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last is pre))
Hemit: fixed_set_signed_message IM byzantine A sender m0
i: index
Hsigned: channel_authenticated_message A sender i m0
n: i ∉ byzantinei ∈ list_to_set (enum index)
When replacing the byzantine components of a composite valid_state with
initial states for those machines validity of transitions for the non-byzantine
components is preserved.
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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv thresholdweak_embedding_valid_preservation PreNonByzantine Limited (lift_sub_label IM (elements non_byzantine)) (lift_sub_state IM (elements non_byzantine))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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv thresholdweak_embedding_valid_preservation PreNonByzantine Limited (lift_sub_label IM (elements non_byzantine)) (lift_sub_state IM (elements non_byzantine))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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option message
Hv: input_valid PreNonByzantine l (s, om)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
HomY: option_valid_message_prop Limited omvalid (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option message
Hv: input_valid PreNonByzantine l (s, om)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
HomY: option_valid_message_prop Limited omlimited_constraint (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option message
Hv: input_valid PreNonByzantine l (s, om)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
HomY: option_valid_message_prop Limited omLimitedEquivocationProp IM threshold is_equivocating (composite_transition IM (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om)).1message, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option message
Hv: input_valid PreNonByzantine l (s, om)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
HomY: option_valid_message_prop Limited om
s': composite_state (sub_IM IM (elements non_byzantine))
om': option message
Ht: composite_transition (sub_IM IM (elements non_byzantine)) l ( s, om) = ( s', om')LimitedEquivocationProp IM threshold is_equivocating (composite_transition IM (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om)).1message, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option message
Hv: input_valid PreNonByzantine l (s, om)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
HomY: option_valid_message_prop Limited om
s': composite_state (sub_IM IM (elements non_byzantine))
om': option message
Ht: composite_transition (sub_IM IM (elements non_byzantine)) l ( s, om) = ( s', om')
HtX: composite_transition IM (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om) = (lift_sub_state IM (elements non_byzantine) s', om')LimitedEquivocationProp IM threshold is_equivocating (composite_transition IM (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om)).1message, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option message
Hv: input_valid PreNonByzantine l (s, om)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
HomY: option_valid_message_prop Limited om
s': composite_state (sub_IM IM (elements non_byzantine))
om': option message
Ht: composite_transition (sub_IM IM (elements non_byzantine)) l ( s, om) = ( s', om')
HtX: (let (si', om') := transition (projT2 l) (lift_sub_state IM (elements non_byzantine) s (`(projT1 l)), om) in (state_update IM (lift_sub_state IM (elements non_byzantine) s) (`(projT1 l)) si', om')) = (lift_sub_state IM (elements non_byzantine) s', om')LimitedEquivocationProp IM threshold (is_equivocating_tracewise_no_has_been_sent IM A sender) (lift_sub_state IM (elements non_byzantine) s')by eapply tracewise_not_heavy_LimitedEquivocationProp_iff, limited_PreNonByzantine_valid_state_lift_not_heavy, input_valid_transition_destination. 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option message
Hv: input_valid PreNonByzantine l (s, om)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
HomY: option_valid_message_prop Limited om
s': composite_state (sub_IM IM (elements non_byzantine))
om': option message
Ht: composite_transition (sub_IM IM (elements non_byzantine)) l ( s, om) = ( s', om')
HtX: (let (si', om') := transition (projT2 l) (lift_sub_state IM (elements non_byzantine) s (`(projT1 l)), om) in (state_update IM (lift_sub_state IM (elements non_byzantine) s) (`(projT1 l)) si', om')) = (lift_sub_state IM (elements non_byzantine) s', om')LimitedEquivocationProp IM threshold is_equivocating (lift_sub_state IM (elements non_byzantine) s')
By replacing the byzantine components of a composite valid_state with
initial states for those machines and ignoring transitions for byzantine components
we obtain valid traces for the
Limited
equivocation composition.
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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv thresholdVLSM_embedding PreNonByzantine Limited (lift_sub_label IM (elements non_byzantine)) (lift_sub_state IM (elements non_byzantine))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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv thresholdVLSM_embedding PreNonByzantine Limited (lift_sub_label IM (elements non_byzantine)) (lift_sub_state IM (elements non_byzantine))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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option messageinput_valid PreNonByzantine l (s, om) → valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s) → option_valid_message_prop Limited om → valid (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option message
s': state PreNonByzantine
om': option messageinput_valid_transition PreNonByzantine l ( s, om) ( s', om') → transition (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om) = (lift_sub_state IM (elements non_byzantine) s', om')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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantineinitial_state_prop s → initial_state_prop (lift_sub_state IM (elements non_byzantine) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
m: messageinput_valid PreNonByzantine l (s, Some m) → valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s) → initial_message_prop m → valid_message_prop Limited mby intros; apply limited_PreNonByzantine_lift_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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option messageinput_valid PreNonByzantine l (s, om) → valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s) → option_valid_message_prop Limited om → valid (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om)by intros * []; rapply lift_sub_transition.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
om: option message
s': state PreNonByzantine
om': option messageinput_valid_transition PreNonByzantine l (s, om) (s', om') → transition (lift_sub_label IM (elements non_byzantine) l) (lift_sub_state IM (elements non_byzantine) s, om) = (lift_sub_state IM (elements non_byzantine) s', om')by intros; apply (lift_sub_state_initial 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
s: state PreNonByzantineinitial_state_prop s → initial_state_prop (lift_sub_state IM (elements non_byzantine) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
m: messageinput_valid PreNonByzantine l (s, Some m) → valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s) → initial_message_prop m → valid_message_prop Limited 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
m: message
Hv: input_valid PreNonByzantine l (s, Some m)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
sub_i: sub_index (elements (list_to_set (enum index) ∖ byzantine))
im: message
Him: initial_message_prop im
Heqm: `(im ↾ Him) = mvalid_message_prop Limited 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
m: message
Hv: input_valid PreNonByzantine l (s, Some m)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
Hseeded: fixed_set_signed_message IM byzantine A sender mvalid_message_prop Limited 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
m: message
Hv: input_valid PreNonByzantine l (s, Some m)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
sub_i: sub_index (elements (list_to_set (enum index) ∖ byzantine))
im: message
Him: initial_message_prop im
Heqm: `(im ↾ Him) = mvalid_message_prop Limited 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
m: message
Hv: input_valid PreNonByzantine l (s, Some m)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
sub_i: sub_index (elements (list_to_set (enum index) ∖ byzantine))
Him: initial_message_prop mvalid_message_prop Limited 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
m: message
Hv: input_valid PreNonByzantine l (s, Some m)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
Him: initial_message_prop mvalid_message_prop Limited mmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
sender: message → option validator
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
m: message
i: index
Him: initial_message_prop mvalid_message_prop Limited mby exists i, (exist _ m Him).message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
sender: message → option validator
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
m: message
i: index
Him: initial_message_prop minitial_message_prop 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
m: message
Hv: input_valid PreNonByzantine l (s, Some m)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
Hseeded: fixed_set_signed_message IM byzantine A sender mvalid_message_prop Limited mby eapply Hvalidator. Qed. End sec_fixed_limited_selection.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
PreNonByzantine:= preloaded_fixed_non_byzantine_vlsm IM byzantine A sender: VLSM message
HBE:= equivocation_dec_tracewise IM threshold A sender: BasicEquivocation (composite_state IM) validator Cv threshold
l: label PreNonByzantine
s: state PreNonByzantine
m: message
Hv: input_valid PreNonByzantine l (s, Some m)
HsY: valid_state_prop Limited (lift_sub_state IM (elements non_byzantine) s)
Hsigned: non_sub_index_authenticated_message (elements (list_to_set (enum index) ∖ byzantine)) A sender m
i: index
Hi: i ∈ list_to_set (enum index) ∖ byzantine
li: label (preloaded_with_all_messages_vlsm (IM i))
si: state (preloaded_with_all_messages_vlsm (IM i))
Hpre_valid: input_constrained (IM i) li (si, Some m)valid_message_prop Limited m
Given a trace with the fixed_limited_byzantine_trace_property for a selection
of
byzantine
components, there exists a valid trace for the Limited
equivocation composition such that the projection of the two traces to
the non-byzantine components coincide.
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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Cifixed_limited_byzantine_trace_prop s tr byzantine_vs → ∃ (bs : state Limited) (btr : list transition_item), finite_valid_trace Limited bs btr ∧ composite_state_sub_projection IM (elements not_byzantine) s = composite_state_sub_projection IM (elements not_byzantine) bs ∧ finite_trace_sub_projection IM (elements not_byzantine) tr = finite_trace_sub_projection IM (elements not_byzantine) btrmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Cifixed_limited_byzantine_trace_prop s tr byzantine_vs → ∃ (bs : state Limited) (btr : list transition_item), finite_valid_trace Limited bs btr ∧ composite_state_sub_projection IM (elements not_byzantine) s = composite_state_sub_projection IM (elements not_byzantine) bs ∧ finite_trace_sub_projection IM (elements not_byzantine) tr = finite_trace_sub_projection IM (elements not_byzantine) btrmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
Hfixed: fixed_byzantine_trace_alt_prop IM (set_map A byzantine_vs) A sender s tr∃ (bs : state Limited) (btr : list transition_item), finite_valid_trace Limited bs btr ∧ composite_state_sub_projection IM (elements not_byzantine) s = composite_state_sub_projection IM (elements not_byzantine) bs ∧ finite_trace_sub_projection IM (elements not_byzantine) tr = finite_trace_sub_projection IM (elements not_byzantine) btrmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
Hfixed: fixed_byzantine_trace_alt_prop IM (set_map A byzantine_vs) A sender s trfinite_valid_trace Limited ?Goal ?Goal0message, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
Hfixed: fixed_byzantine_trace_alt_prop IM (set_map A byzantine_vs) A sender s trcomposite_state_sub_projection IM (elements not_byzantine) s = composite_state_sub_projection IM (elements not_byzantine) ?Goal ∧ finite_trace_sub_projection IM (elements not_byzantine) tr = finite_trace_sub_projection IM (elements not_byzantine) ?Goal0by apply (VLSM_embedding_finite_valid_trace (limited_PreNonByzantine_vlsm_lift byzantine_vs Hlimit)).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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
Hfixed: fixed_byzantine_trace_alt_prop IM (set_map A byzantine_vs) A sender s trfinite_valid_trace Limited ?Goal ?Goal0message, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
Hfixed: fixed_byzantine_trace_alt_prop IM (set_map A byzantine_vs) A sender s trcomposite_state_sub_projection IM (elements not_byzantine) s = composite_state_sub_projection IM (elements not_byzantine) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine_vs)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine_vs)) s)) ∧ finite_trace_sub_projection IM (elements not_byzantine) tr = finite_trace_sub_projection IM (elements not_byzantine) (VLSM_embedding_finite_trace_project (limited_PreNonByzantine_vlsm_lift byzantine_vs Hlimit) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine_vs)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
Hfixed: fixed_byzantine_trace_alt_prop IM (set_map A byzantine_vs) A sender s trcomposite_state_sub_projection IM (elements not_byzantine) s = composite_state_sub_projection IM (elements not_byzantine) (lift_sub_state_to IM (elements (list_to_set (enum index) ∖ set_map A byzantine_vs)) (λ n : index, `(vs0 (IM n))) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine_vs)) s)) ∧ finite_trace_sub_projection IM (elements not_byzantine) tr = finite_trace_sub_projection IM (elements not_byzantine) (VLSM_embedding_finite_trace_project (limited_PreNonByzantine_vlsm_lift byzantine_vs Hlimit) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine_vs)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
Hfixed: fixed_byzantine_trace_alt_prop IM (set_map A byzantine_vs) A sender s trcomposite_state_sub_projection IM (elements not_byzantine) s = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine_vs)) s ∧ finite_trace_sub_projection IM (elements not_byzantine) tr = finite_trace_sub_projection IM (elements not_byzantine) (VLSM_embedding_finite_trace_project (limited_PreNonByzantine_vlsm_lift byzantine_vs Hlimit) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine_vs)) tr))by symmetry; apply composite_trace_sub_projection_lift. 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
not_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimit: (sum_weights byzantine_vs <= threshold)%R
Hfixed: fixed_byzantine_trace_alt_prop IM (set_map A byzantine_vs) A sender s trfinite_trace_sub_projection IM (elements not_byzantine) tr = finite_trace_sub_projection IM (elements not_byzantine) (VLSM_embedding_finite_trace_project (limited_PreNonByzantine_vlsm_lift byzantine_vs Hlimit) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine_vs)) tr))
The main result
Limited
equivocation composition and
a selection of components of limited weight such that the projection of the
two traces to the components not in the selection coincide.
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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)limited_byzantine_trace_prop s tr → ∃ (bs : state Limited) (btr : list transition_item), finite_valid_trace Limited bs btr ∧ (∃ selection_vs : Cv, let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) bs ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) btr)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)limited_byzantine_trace_prop s tr → ∃ (bs : state Limited) (btr : list transition_item), finite_valid_trace Limited bs btr ∧ (∃ selection_vs : Cv, let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) bs ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) btr)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: fixed_limited_byzantine_trace_prop s tr byzantine∃ (bs : state Limited) (btr : list transition_item), finite_valid_trace Limited bs btr ∧ (∃ selection_vs : Cv, let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) bs ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) btr)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: fixed_limited_byzantine_trace_prop s tr byzantine
Hlimit: (sum_weights byzantine <= threshold)%R∃ (bs : state Limited) (btr : list transition_item), finite_valid_trace Limited bs btr ∧ (∃ selection_vs : Cv, let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) bs ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) btr)by exists bs, btr; eauto. Qed. End sec_limited_byzantine_traces. Section sec_msg_dep_limited_byzantine_traces. 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) `{ReachableThreshold validator Cv threshold} `{!finite.Finite validator} `{FinSet message Cm} (message_dependencies : message -> Cm) (full_message_dependencies : message -> Cm) `{!FullMessageDependencies message_dependencies full_message_dependencies} `{forall i, MessageDependencies (IM i) message_dependencies} (sender : message -> option validator) (A : validator -> index) `{!Inj (=) (=) A} (Limited := msg_dep_limited_equivocation_vlsm (Cv := Cv) IM threshold full_message_dependencies sender) (no_initial_messages_in_IM : no_initial_messages_in_IM_prop IM) (Hchannel : channel_authentication_prop IM A sender) (Hvalidator : forall i : index, msg_dep_limited_equivocation_message_validator_prop (Cv := Cv) IM threshold full_message_dependencies sender i) (Hfull : forall i, message_dependencies_full_node_condition_prop (IM i) message_dependencies) .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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
A: validator → index
Inj0: Inj eq eq A
sender: message → option validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
is_equivocating_tracewise_no_has_been_sent_dec: RelDecision (is_equivocating_tracewise_no_has_been_sent IM A sender)
limited_constraint:= tracewise_limited_equivocation_constraint IM threshold A sender: composite_label IM → composite_state IM * option message → Prop
Limited:= composite_vlsm IM limited_constraint: VLSM message
Hvalidator: ∀ i : index, component_message_validator_prop IM limited_constraint i
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM A sender
message_dependencies: message → Cm
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
bs: state Limited
btr: list transition_item
Hlimited: finite_valid_trace Limited bs btr
Hs_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) bs
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) btr
Hlimit: (sum_weights byzantine <= threshold)%R∃ (bs : state Limited) (btr : list transition_item), finite_valid_trace Limited bs btr ∧ (∃ selection_vs : Cv, let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) bs ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) btr)
If the set of byzantine components is weight-limited and if an input_valid_transition
of the non-byzantine components from a state of weight-limited equivocation does not
introduce equivocators from the non-byzantine components, then the transition is valid
for weight-limited equivocation.
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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
sub_l: label (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) sub_l ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) sub_l) (ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsinput_valid_transition Limited (lift_sub_label IM (elements non_byzantine) sub_l) (ann_s, iom) ({| original_state := lift_sub_state IM (elements non_byzantine) sub_sf; state_annotation := ann' |}, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
sub_l: label (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) sub_l ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) sub_l) (ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsinput_valid_transition Limited (lift_sub_label IM (elements non_byzantine) sub_l) (ann_s, iom) ({| original_state := lift_sub_state IM (elements non_byzantine) sub_sf; state_annotation := ann' |}, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsinput_valid_transition Limited (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) (ann_s, iom) ({| original_state := lift_sub_state IM (elements non_byzantine) sub_sf; state_annotation := ann' |}, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsvalid_state_prop Limited ann_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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsoption_valid_message_prop Limited iommessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsvalid li (original_state ann_s i, iom)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vscoeqv_limited_equivocation_constraint IM threshold sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsannotated_transition (free_composite_vlsm IM) Cv (coeqv_composite_transition_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender)) (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom) = ({| original_state := lift_sub_state IM (elements non_byzantine) sub_sf; state_annotation := match iom with | Some m => state_annotation ann_s ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state ann_s) m | None => state_annotation ann_s end |}, oom)done.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsvalid_state_prop Limited ann_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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsoption_valid_message_prop Limited iomby eapply Hvalidator, preloaded_sub_composite_input_valid_projection, Ht_sub.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, Some im) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, Some im): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsoption_valid_message_prop Limited (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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsvalid li (original_state ann_s i, iom)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsvalid li (original_state ann_s i, iom)by apply Ht_sub.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsvalid li (sub_s (dexist i Hi), iom)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vscoeqv_limited_equivocation_constraint IM threshold sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) (ann_s, iom)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vs(sum_weights (coeqv_composite_transition_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) (ann_s, iom)) <= sum_weights byzantine_vs)%Rby intro; apply Heqv_byzantine.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vscoeqv_composite_transition_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) (ann_s, iom) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s: valid_state_prop Limited ann_s
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
ann':= msg_dep_composite_transition_message_equivocators IM full_message_dependencies sender (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) ( ann_s, iom): Cv
Heqv_byzantine: ann' ⊆ byzantine_vsannotated_transition (free_composite_vlsm IM) Cv (coeqv_composite_transition_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender)) (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) (ann_s, iom) = ({| original_state := lift_sub_state IM (elements non_byzantine) sub_sf; state_annotation := match iom with | Some m => state_annotation ann_s ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state ann_s) m | None => state_annotation ann_s end |}, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H16: Elements validator Cv
Cm: Type
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H26: Elements message Cm
full_message_dependencies: message → Cm
sender: message → option validator
A: validator → index
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
Ht_sub: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) ( sub_s, iom) (sub_sf, oom)
ann_s: state Limited
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_sannotated_transition (free_composite_vlsm IM) Cv (coeqv_composite_transition_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender)) (lift_sub_label IM (elements non_byzantine) (existT (dexist i Hi) li)) (ann_s, iom) = ({| original_state := lift_sub_state IM (elements non_byzantine) sub_sf; state_annotation := match iom with | Some m => state_annotation ann_s ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state ann_s) m | None => state_annotation ann_s end |}, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H16: Elements validator Cv
Cm: Type
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H26: Elements message Cm
full_message_dependencies: message → Cm
sender: message → option validator
A: validator → index
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
ann_s: state Limited
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
si': state (IM i)
om': option message({| original_state := state_update IM (lift_sub_state IM (elements non_byzantine) sub_s) i si'; state_annotation := match iom with | Some m => state_annotation ann_s ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (lift_sub_state IM (elements non_byzantine) sub_s) m | None => state_annotation ann_s end |}, oom) = ({| original_state := lift_sub_state IM (elements non_byzantine) (state_update (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) sub_s (dexist i Hi) si'); state_annotation := match iom with | Some m => state_annotation ann_s ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (lift_sub_state IM (elements non_byzantine) sub_s) m | None => state_annotation ann_s end |}, oom)message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H16: Elements validator Cv
Cm: Type
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H26: Elements message Cm
full_message_dependencies: message → Cm
sender: message → option validator
A: validator → index
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
ann_s: state Limited
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
si': state (IM i)
om': option message
j: indexstate_update IM (lift_sub_state IM (elements non_byzantine) sub_s) i si' j = lift_sub_state IM (elements non_byzantine) (state_update (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) sub_s (dexist i Hi) si') jmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H16: Elements validator Cv
Cm: Type
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H26: Elements message Cm
full_message_dependencies: message → Cm
sender: message → option validator
A: validator → index
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
ann_s: state Limited
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
si': state (IM i)
om': option message
j: indexstate_update IM (lift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) sub_s) i si' j = lift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) (state_update (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) sub_s (dexist i Hi) si') jmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H16: Elements validator Cv
Cm: Type
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H26: Elements message Cm
full_message_dependencies: message → Cm
sender: message → option validator
A: validator → index
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
j: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) j
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist j Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
ann_s: state Limited
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
si': state (IM j)
om': option messagesi' = lift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) (state_update (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) sub_s (dexist j Hi) si') jmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H16: Elements validator Cv
Cm: Type
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H26: Elements message Cm
full_message_dependencies: message → Cm
sender: message → option validator
A: validator → index
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
ann_s: state Limited
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
si': state (IM i)
om': option message
j: index
n: i ≠ jlift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) sub_s j = lift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) (state_update (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) sub_s (dexist i Hi) si') jby rewrite (lift_sub_state_to_eq _ _ _ _ _ Hi), !state_update_eq.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H16: Elements validator Cv
Cm: Type
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H26: Elements message Cm
full_message_dependencies: message → Cm
sender: message → option validator
A: validator → index
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
j: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) j
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist j Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
ann_s: state Limited
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
si': state (IM j)
om': option messagesi' = lift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) (state_update (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) sub_s (dexist j Hi) si') jmessage, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H16: Elements validator Cv
Cm: Type
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H26: Elements message Cm
full_message_dependencies: message → Cm
sender: message → option validator
A: validator → index
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
ann_s: state Limited
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
si': state (IM i)
om': option message
j: index
n: i ≠ jlift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) sub_s j = lift_sub_state_to IM (elements non_byzantine) (λ n : index, `(vs0 (IM n))) (state_update (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) sub_s (dexist i Hi) si') jby case_decide; [rewrite sub_IM_state_update_neq |]. Qed.message, index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision0: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: ∀ i : index, HasBeenSentCapability (IM i)
H9: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
validator, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H16: Elements validator Cv
Cm: Type
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H26: Elements message Cm
full_message_dependencies: message → Cm
sender: message → option validator
A: validator → index
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
sub_s: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom: option message
sub_sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
oom: option message
ann_s: state Limited
Hann_s_pr: original_state ann_s = lift_sub_state IM (elements non_byzantine) sub_s
si': state (IM i)
om': option message
j: index
n: i ≠ jmatch decide (sub_index_prop (elements non_byzantine) j) with | left e => sub_s (dexist j e) | right _ => `(vs0 (IM j)) end = match decide (sub_index_prop (elements non_byzantine) j) with | left e => state_update (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) sub_s (dexist i Hi) si' (dexist j e) | right _ => `(vs0 (IM j)) end
Considering a trace with the fixed_byzantine_trace_alt_property for a
set
byzantine
of indices of bounded weight, its subtrace corresponding to
the non-byzantine components is of limited equivocation and its set of equivocators
is included in byzantine
.
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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
Hbyzantine: fixed_byzantine_trace_alt_prop IM byzantine A sender s tr
s_reset_byzantine:= lift_sub_state IM (elements non_byzantine) (composite_state_sub_projection IM (elements non_byzantine) s): composite_state IM
bs:= {| original_state := s_reset_byzantine; state_annotation := `inhabitant |}: annotated_state (free_composite_vlsm IM) Cv
btr:= msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements non_byzantine))) (composite_type IM) (lift_sub_label IM (elements non_byzantine)) (lift_sub_state IM (elements non_byzantine)) (finite_trace_sub_projection IM (elements non_byzantine) tr)): list transition_itemfinite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
non_byzantine:= list_to_set (enum index) ∖ byzantine: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
Hbyzantine: fixed_byzantine_trace_alt_prop IM byzantine A sender s tr
s_reset_byzantine:= lift_sub_state IM (elements non_byzantine) (composite_state_sub_projection IM (elements non_byzantine) s): composite_state IM
bs:= {| original_state := s_reset_byzantine; state_annotation := `inhabitant |}: annotated_state (free_composite_vlsm IM) Cv
btr:= msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements non_byzantine))) (composite_type IM) (lift_sub_label IM (elements non_byzantine)) (lift_sub_state IM (elements non_byzantine)) (finite_trace_sub_projection IM (elements non_byzantine) tr)): list transition_itemfinite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
Hbyzantine: fixed_byzantine_trace_alt_prop IM byzantine A sender s tr
s_reset_byzantine:= lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ byzantine)) s): composite_state IM
bs:= {| original_state := s_reset_byzantine; state_annotation := `inhabitant |}: annotated_state (free_composite_vlsm IM) Cv
btr:= msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ byzantine)) tr)): list transition_itemfinite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hsi: initial_state_prop si
s_reset_byzantine:= lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si: composite_state IM
bs:= {| original_state := s_reset_byzantine; state_annotation := `inhabitant |}: annotated_state (free_composite_vlsm IM) Cv
btr:= msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) []): list transition_itemfinite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
l: label (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) l (finite_trace_last si tr0, iom) ( sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
s_reset_byzantine:= lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si: composite_state IM
bs:= {| original_state := s_reset_byzantine; state_annotation := `inhabitant |}: annotated_state (free_composite_vlsm IM) Cv
btr:= msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) (tr0 ++ [x])): list transition_item
IHHbyzantine: let s_reset_byzantine := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si in let bs := {| original_state := s_reset_byzantine; state_annotation := `inhabitant |} in let btr := msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0) in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsfinite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hsi: initial_state_prop si
s_reset_byzantine:= lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si: composite_state IM
bs:= {| original_state := s_reset_byzantine; state_annotation := `inhabitant |}: annotated_state (free_composite_vlsm IM) Cv
btr:= msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) []): list transition_itemfinite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hsi: initial_state_prop si
s_reset_byzantine:= lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si: composite_state IM
bs:= {| original_state := s_reset_byzantine; state_annotation := `inhabitant |}: annotated_state (free_composite_vlsm IM) Cv
btr:= msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) []): list transition_itemfinite_valid_trace Limited bs btrby split; [constructor; 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hsi: initial_state_prop si
s_reset_byzantine:= lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si: composite_state IM
bs:= {| original_state := s_reset_byzantine; state_annotation := `inhabitant |}: annotated_state (free_composite_vlsm IM) Cv
btr:= msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) []): list transition_item
Hisp: initial_state_prop bsfinite_valid_trace Limited bs btrmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
l: label (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) l (finite_trace_last si tr0, iom) ( sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
s_reset_byzantine:= lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si: composite_state IM
bs:= {| original_state := s_reset_byzantine; state_annotation := `inhabitant |}: annotated_state (free_composite_vlsm IM) Cv
btr:= msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) (tr0 ++ [x])): list transition_item
IHHbyzantine: let s_reset_byzantine := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si in let bs := {| original_state := s_reset_byzantine; state_annotation := `inhabitant |} in let btr := msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0) in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsfinite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
l: label (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) l (finite_trace_last si tr0, iom) ( sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
IHHbyzantine: let s_reset_byzantine := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si in let bs := {| original_state := s_reset_byzantine; state_annotation := `inhabitant |} in let btr := msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0) in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsfinite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) (tr0 ++ [x]))) ∧ state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) (tr0 ++ [x])))) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
l: label (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) l (finite_trace_last si tr0, iom) ( sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
IHHbyzantine: let s_reset_byzantine := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si in let bs := {| original_state := s_reset_byzantine; state_annotation := `inhabitant |} in let btr := msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0) in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsfinite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0 ++ map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) [x])) ∧ state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0 ++ map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) [x]))) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
l: label (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) l (finite_trace_last si tr0, iom) ( sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
IHHbyzantine: let s_reset_byzantine := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si in let bs := {| original_state := s_reset_byzantine; state_annotation := `inhabitant |} in let btr := msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0) in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsfinite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ annotate_trace_item (free_composite_vlsm IM) Cv (coeqv_composite_transition_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender)) (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) x) (λ _ : annotated_state (free_composite_vlsm IM) Cv, []) (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0)))) ∧ state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ annotate_trace_item (free_composite_vlsm IM) Cv (coeqv_composite_transition_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender)) (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) x) (λ _ : annotated_state (free_composite_vlsm IM) Cv, []) (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0))))) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
l: label (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) l (finite_trace_last si tr0, iom) ( sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
IHHbyzantine: let s_reset_byzantine := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si in let bs := {| original_state := s_reset_byzantine; state_annotation := `inhabitant |} in let btr := msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender s_reset_byzantine (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0) in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ byzantine_vsfinite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) l; input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (...))) (composite_type IM) (lift_sub_label IM (elements (...))) (lift_sub_state IM (elements (...)))) tr0))) ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set ... ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set ... ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (...)) (composite_type IM) (lift_sub_label IM (...)) (lift_sub_state IM (...))) tr0)))) m | None => state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements ...))) (composite_type IM) (lift_sub_label IM (elements (... ∖ byzantine))) (lift_sub_state IM (elements (... ∖ byzantine)))) tr0))) end |}; output := oom |}]) ∧ match iom with | Some m => state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0))) ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0)))) m | None => state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0))) end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
Htr0_eqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))) ⊆ byzantine_vsfinite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li); input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (...))) (composite_type IM) (lift_sub_label IM (elements (...))) (lift_sub_state IM (elements (...)))) tr0))) ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set ... ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set ... ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (...)) (composite_type IM) (lift_sub_label IM (...)) (lift_sub_state IM (...))) tr0)))) m | None => state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements ...))) (composite_type IM) (lift_sub_label IM (elements (... ∖ byzantine))) (lift_sub_state IM (elements (... ∖ byzantine)))) tr0))) end |}; output := oom |}]) ∧ match iom with | Some m => state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0))) ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0)))) m | None => state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0))) end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vsfinite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li); input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}; output := oom |}]) ∧ match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vsoriginal_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li); input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}; output := oom |}]) ∧ match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vsoriginal_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)apply (pre_VLSM_embedding_finite_trace_last _ _ (lift_sub_label IM _) (lift_sub_state 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
Htr0_eqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))) ⊆ byzantine_vslift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0) = finite_trace_last (original_state {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |}) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li); input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}; output := oom |}]) ∧ match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vs → finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li); input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}; output := oom |}]) ∧ match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vs → finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li); input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}; output := oom |}]) ∧ match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Heqv_byzantine: match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsfinite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li); input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}; output := oom |}]) ∧ match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Heqv_byzantine: match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsfinite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0) ++ [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li); input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}; 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Heqv_byzantine: match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsfinite_valid_trace_from Limited (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0))) [{| l := lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li); input := iom; destination := {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}; 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Heqv_byzantine: match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsinput_valid_transition Limited (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li)) (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)))) tr0)), iom) ({| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}, oom)by eapply lift_preloaded_fixed_non_byzantine_valid_transition_to_limited; [| | subst lst; apply finite_valid_trace_last_pstate | |].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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Heqv_byzantine: match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsinput_valid_transition Limited (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine)) (existT (dexist i Hi) li)) (lst, iom) ({| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) sf; state_annotation := match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end |}, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
iom, oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := iom; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, iom) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)match iom with | Some m => state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) m | None => state_annotation lst end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, Some im) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)state_annotation lst ∪ coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) im ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, Some im) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)coeqv_message_equivocators IM sender (msg_dep_coequivocating_senders IM full_message_dependencies sender) (original_state lst) im ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, Some im) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) imlist_to_set (omap sender [im] ++ elements (msg_dep_coequivocating_senders IM full_message_dependencies sender (original_state lst) im)) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, Some im) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) imlist_to_set (omap sender [im] ++ elements ∅) ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, Some im) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) imlist_to_set match sender im with | Some y => [y] | None => [] end ⊆ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, Some im) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
_i_im: validator_i_im ∈ match sender im with | Some y => [y] | None => [] end → _i_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, Some im) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
_i_im, i_im: validator
Hsender: sender im = Some i_im_i_im ∈ [i_im] → _i_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hx: input_valid_transition (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) (existT (dexist i Hi) li) (finite_trace_last si tr0, Some im) ( sf, oom)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
i_im: validator
Hsender: sender im = Some i_imi_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hsent: composite_has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) (finite_trace_last si tr0, Some im).1 im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
i_im: validator
Hsender: sender im = Some i_imi_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hsigned: non_sub_index_authenticated_message (elements (list_to_set (enum index) ∖ byzantine)) A sender im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
i_im: validator
Hsender: sender im = Some i_imi_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hsent: composite_has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) (finite_trace_last si tr0, Some im).1 im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
i_im: validator
Hsender: sender im = Some i_imi_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hsent: composite_has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine))) (finite_trace_last si tr0, Some im).1 im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
i_im: validator
Hsender: sender im = Some i_imcomposite_has_been_directly_observed IM (original_state lst) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
_i_im: index
H_i_im: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) _i_im
Hsent: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist _i_im H_i_im)) (finite_trace_last si tr0 (dexist _i_im H_i_im)) im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
i_im: validator
Hsender: sender im = Some i_imcomposite_has_been_directly_observed IM (original_state lst) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
_i_im: index
H_i_im: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) _i_im
Hsent: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist _i_im H_i_im)) (finite_trace_last si tr0 (dexist _i_im H_i_im)) im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
i_im: validator
Hsender: sender im = Some i_imcomposite_has_been_sent IM (original_state lst) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
_i_im: index
H_i_im: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) _i_im
Hsent: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist _i_im H_i_im)) (finite_trace_last si tr0 (dexist _i_im H_i_im)) im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
i_im: validator
Hsender: sender im = Some i_imhas_been_sent (IM _i_im) (original_state lst _i_im) imby rewrite (lift_sub_state_to_eq _ _ _ _ _ H_i_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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
_i_im: index
H_i_im: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) _i_im
Hsent: has_been_sent (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist _i_im H_i_im)) (finite_trace_last si tr0 (dexist _i_im H_i_im)) im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
i_im: validator
Hsender: sender im = Some i_imhas_been_sent (IM _i_im) (lift_sub_state_to IM (elements (list_to_set (enum index) ∖ byzantine)) (λ n : index, `(vs0 (IM n))) (finite_trace_last si tr0) _i_im) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
Hsigned: non_sub_index_authenticated_message (elements (list_to_set (enum index) ∖ byzantine)) A sender im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
i_im: validator
Hsender: sender im = Some i_imi_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
_i_im: index
H_i_im: _i_im ∉ elements (list_to_set (enum index) ∖ byzantine)
Hauth: channel_authenticated_message A sender _i_im im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
i_im: validator
Hsender: sender im = Some i_imi_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
_i_im: index
H_i_im: _i_im ∉ elements (list_to_set (enum index) ∖ byzantine)
i_im: validator
Hauth: option_map A (Some i_im) = Some _i_im
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
Hsender: sender im = Some i_imi_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
i_im: validator
H_i_im: A i_im ∉ elements (list_to_set (enum index) ∖ byzantine)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
Hsender: sender im = Some i_imi_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
i_im: validator
H_i_im: A i_im ∉ elements (list_to_set (enum index) ∖ byzantine)
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
Hsender: sender im = Some i_im
Hni_im: i_im ∉ byzantine_vsi_im ∈ byzantine_vsmessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
i_im: validator
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
Hsender: sender im = Some i_im
Hni_im: i_im ∉ byzantine_vsA i_im ∈ elements (list_to_set (enum index) ∖ byzantine)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
i_im: validator
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
Hsender: sender im = Some i_im
Hni_im: i_im ∉ byzantine_vsA i_im ∈ list_to_set (enum index) ∧ A i_im ∉ byzantineby contradict Hni_im; revert Hni_im; apply elem_of_set_map_inj. 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine_vs: Cv
byzantine:= set_map A byzantine_vs: Ci
Hlimited: (sum_weights byzantine_vs <= threshold)%R
si: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
tr0: list transition_item
Hbyzantine: finite_valid_trace (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender) si tr0
sf: state (preloaded_fixed_non_byzantine_vlsm IM byzantine A sender)
im: message
oom: option message
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ byzantine)) i
li: label (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)) (dexist i Hi))
x:= {| l := existT (dexist i Hi) li; input := Some im; destination := sf; output := oom |}: transition_item
i_im: validator
Htr0_ann: finite_valid_trace_from Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Hsi_ann: initial_state_prop {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := `inhabitant |}
lst: state (annotated_type (free_composite_vlsm IM) Cv)
Heqlst: lst = finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si; state_annotation := ∅ |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) si) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine))) tr0))
Htr0_eqv_byzantine: state_annotation lst ⊆ byzantine_vs
Hlsti: original_state lst = lift_sub_state IM (elements (list_to_set (enum index) ∖ byzantine)) (finite_trace_last si tr0)
Hnobs: ¬ composite_has_been_directly_observed IM (original_state lst) im
Hsender: sender im = Some i_im
Hni_im: i_im ∉ byzantine_vsA i_im ∉ byzantine
Under full-message dependencies and full node assumptions, if all components are
validators for the msg_dep_limited_equivocation_vlsm associated to their
composition, then the traces exposed limited Byzantine behavior coincide with
the traces exposed to limited equivocation.
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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)limited_byzantine_trace_prop IM threshold A sender s tr ↔ (∃ (bs : state Limited) (btr : list transition_item) (selection_vs : Cv), let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ selection_vs ∧ (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) (original_state bs) ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr))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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)limited_byzantine_trace_prop IM threshold A sender s tr ↔ (∃ (bs : state Limited) (btr : list transition_item) (selection_vs : Cv), let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ selection_vs ∧ (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) (original_state bs) ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr))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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)limited_byzantine_trace_prop IM threshold A sender s tr → ∃ (bs : state Limited) (btr : list transition_item) (selection_vs : Cv), let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ selection_vs ∧ (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) (original_state bs) ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)(∃ (bs : state Limited) (btr : list transition_item) (selection_vs : Cv), let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ selection_vs ∧ (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) (original_state bs) ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)) → limited_byzantine_trace_prop IM threshold A sender 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)limited_byzantine_trace_prop IM threshold A sender s tr → ∃ (bs : state Limited) (btr : list transition_item) (selection_vs : Cv), let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ selection_vs ∧ (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) (original_state bs) ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbyzantine: fixed_byzantine_trace_alt_prop IM (set_map A byzantine) A sender s tr∃ (bs : state Limited) (btr : list transition_item) (selection_vs : Cv), let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ selection_vs ∧ (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) (original_state bs) ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbtr: finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))
Heqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))) ⊆ byzantine∃ (bs : state Limited) (btr : list transition_item) (selection_vs : Cv), let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ selection_vs ∧ (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) (original_state bs) ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbtr: finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))
Heqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))) ⊆ byzantinecomposite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |})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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbtr: finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))
Heqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))) ⊆ byzantinefinite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbtr: finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))
Heqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))) ⊆ byzantinecomposite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |})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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbtr: finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))
Heqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))) ⊆ byzantine
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ set_map A byzantine)) icomposite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s (dexist i Hi) = lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s) iby rewrite (lift_sub_state_to_eq _ _ _ _ _ Hi).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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbtr: finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))
Heqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))) ⊆ byzantine
i: index
Hi: sub_index_prop (elements (list_to_set (enum index) ∖ set_map A byzantine)) icomposite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s (dexist i Hi) = lift_sub_state_to IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (λ n : index, `(vs0 (IM n))) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s) imessage, 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbtr: finite_valid_trace Limited {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))
Heqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))) ⊆ byzantinefinite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbtr: finite_valid_trace (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))
Heqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))) ⊆ byzantinefinite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr))))by symmetry; apply composite_trace_sub_projection_lift.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
byzantine: Cv
Hlimited: (sum_weights byzantine <= threshold)%R
Hbtr: finite_valid_trace (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))
Heqv_byzantine: state_annotation (finite_trace_last {| original_state := lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s); state_annotation := `inhabitant |} (msg_dep_annotate_trace_with_equivocators IM full_message_dependencies sender (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr)))) ⊆ byzantinefinite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project (composite_type (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (composite_type IM) (lift_sub_label IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (lift_sub_state IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)(∃ (bs : state Limited) (btr : list transition_item) (selection_vs : Cv), let selection := set_map A selection_vs in let selection_complement := list_to_set (enum index) ∖ selection in finite_valid_trace Limited bs btr ∧ state_annotation (finite_trace_last bs btr) ⊆ selection_vs ∧ (sum_weights selection_vs <= threshold)%R ∧ composite_state_sub_projection IM (elements selection_complement) s = composite_state_sub_projection IM (elements selection_complement) (original_state bs) ∧ finite_trace_sub_projection IM (elements selection_complement) tr = finite_trace_sub_projection IM (elements selection_complement) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)) → limited_byzantine_trace_prop IM threshold A sender 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Hbtr: finite_valid_trace Limited bs btr
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs)
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)limited_byzantine_trace_prop IM threshold A sender 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Hbtr: finite_valid_trace Limited bs btr
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs)
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)fixed_byzantine_trace_alt_prop IM (set_map A byzantine) A sender 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Hbtr: finite_valid_trace Limited bs btr
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs)
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)finite_valid_trace {| vlsm_type := composite_vlsm (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (NoEquivocation.no_equivocations_additional_constraint_with_preloaded (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine))) (free_constraint (sub_IM IM (elements (list_to_set (enum index) ∖ set_map A byzantine)))) (fixed_set_signed_message IM (set_map A byzantine) A sender)); vlsm_machine := pre_induced_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (fixed_equivocation_constraint IM (set_map A byzantine)) |} (composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s) (finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Hbtr: finite_valid_trace Limited bs btr
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs)
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)∃ (eis : state (fixed_equivocation_vlsm_composition IM (set_map A byzantine))) (etr : list transition_item), finite_valid_trace (fixed_equivocation_vlsm_composition IM (set_map A byzantine)) eis etr ∧ composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) eis = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s ∧ finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) etr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Hbtr: finite_valid_trace Limited bs btr
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs) = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr) = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr∃ (eis : state (fixed_equivocation_vlsm_composition IM (set_map A byzantine))) (etr : list transition_item), finite_valid_trace (fixed_equivocation_vlsm_composition IM (set_map A byzantine)) eis etr ∧ composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) eis = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s ∧ finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) etr = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) 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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Hbtr: finite_valid_trace Limited bs btr
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs) = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr) = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) trfinite_valid_trace (fixed_equivocation_vlsm_composition IM (set_map A byzantine)) (original_state bs) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs) = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr) = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr
Hbtr: finite_valid_trace (fixed_equivocation_vlsm_composition IM (set_map A (state_annotation (finite_trace_last bs btr)))) (original_state bs) (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state btr)finite_valid_trace (fixed_equivocation_vlsm_composition IM (set_map A byzantine)) (original_state bs) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr)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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs) = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr) = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) trVLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm IM) (fixed_equivocation_constraint IM (set_map A (state_annotation (finite_trace_last bs btr))))) (constrained_vlsm_machine (free_composite_vlsm IM) (fixed_equivocation_constraint IM (set_map A byzantine)))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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs) = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr) = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) trelements (set_map A (state_annotation (finite_trace_last bs btr))) ⊆ elements (set_map A byzantine)by apply set_map_mono. Qed. End sec_msg_dep_limited_byzantine_traces.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, Cv: Type
Hm: Measurable validator
H10: ElemOf validator Cv
H11: Empty Cv
H12: Singleton validator Cv
H13: Union Cv
H14: Intersection Cv
H15: Difference Cv
H16: Elements validator Cv
EqDecision1: EqDecision validator
H17: FinSet validator Cv
H18: ReachableThreshold validator Cv threshold
H19: finite.Finite validator
Cm: Type
H20: ElemOf message Cm
H21: Empty Cm
H22: Singleton message Cm
H23: Union Cm
H24: Intersection Cm
H25: Difference Cm
H26: Elements message Cm
EqDecision2: EqDecision message
H27: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H28: ∀ i : index, MessageDependencies (IM i) message_dependencies
sender: message → option validator
A: validator → index
Inj0: Inj eq eq A
Limited:= msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
Hchannel: channel_authentication_prop IM A sender
Hvalidator: ∀ i : index, msg_dep_limited_equivocation_message_validator_prop IM threshold full_message_dependencies sender i
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
s: composite_state IM
tr: list (composite_transition_item IM)
bs: state Limited
btr: list transition_item
byzantine: Cv
Heqv_byzantine: state_annotation (finite_trace_last bs btr) ⊆ byzantine
Hlimited: (sum_weights byzantine <= threshold)%R
His_pr: composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (original_state bs) = composite_state_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) s
Htr_pr: finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) (pre_VLSM_embedding_finite_trace_project Limited (composite_type IM) Datatypes.id original_state btr) = finite_trace_sub_projection IM (elements (list_to_set (enum index) ∖ set_map A byzantine)) tr
x: indexx ∈ set_map A (state_annotation (finite_trace_last bs btr)) → x ∈ set_map A byzantine