From stdpp Require Import prelude. From Coq Require Import FinFun Reals. From VLSM.Lib Require Import StdppListSet RealsExtras Measurable FinSetExtras. From VLSM.Core Require Import VLSM VLSMProjections Composition AnnotatedVLSM. From VLSM.Core Require Import Equivocation MessageDependencies. From VLSM.Core Require Import Equivocation.TraceWiseEquivocation. From VLSM.Core Require Import Equivocation.LimitedMessageEquivocation. From VLSM.Core Require Import Equivocation.WitnessedEquivocation. From VLSM.Core Require Import Equivocation.MsgDepLimitedEquivocation. From VLSM.Core Require Import Equivocation.FixedSetEquivocation.From VLSM.Core Require Import Equivocators.EquivocatorsCompositionProjections. From VLSM.Core Require Import Equivocators.LimitedStateEquivocation. From VLSM.Core Require Import Equivocators.FixedEquivocationSimulation. From VLSM.Core Require Import Equivocators.FixedEquivocation.
Core: VLSM Equivocators Simulating Limited Message Equivocation Traces
Section sec_fixed_limited_state_equivocation. Context {message index : Type} (IM : index -> VLSM message) `{forall i, HasBeenSentCapability (IM i)} `{forall i, HasBeenReceivedCapability (IM i)} (threshold : R) `{ReachableThreshold index Ci threshold} `{!finite.Finite index} (Limited : VLSM message := equivocators_limited_equivocations_vlsm (Ci := Ci) IM threshold) (equivocating : Ci) (Fixed : VLSM message := equivocators_fixed_equivocations_vlsm IM (elements equivocating)) .
If the total weight of the equivocators allowed to state-equivocate is less
than the threshold, then traces of equivocators which are valid w.r.t
the fixed state-equivocation constraint are also valid w.r.t. the
limited state-equivocation constraint.
message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%RVLSM_incl Fixed Limitedmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%RVLSM_incl Fixed Limitedmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%Rinput_valid_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating)) (equivocators_limited_equivocations_constraint IM threshold)message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%Rpreloaded_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating)) (equivocators_limited_equivocations_constraint IM threshold)message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%Rstrong_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating)) (equivocators_limited_equivocations_constraint IM threshold)message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
Hfixed: state_has_fixed_equivocation IM (elements equivocating) (composite_transition (equivocator_IM IM) l ( s, om)).1equivocators_limited_equivocations_constraint IM threshold l (s, om)message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
Hfixed: state_has_fixed_equivocation IM (elements equivocating) (composite_transition (equivocator_IM IM) l ( s, om)).1not_heavy (composite_transition (equivocator_IM IM) l (s, om)).1message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
Hfixed: state_has_fixed_equivocation IM (elements equivocating) (composite_transition (equivocator_IM IM) l ( s, om)).1(equivocation_fault (composite_transition (equivocator_IM IM) l (s, om)).1 <= threshold)%Rmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
Hfixed: state_has_fixed_equivocation IM (elements equivocating) (composite_transition (equivocator_IM IM) l ( s, om)).1(equivocation_fault (composite_transition (equivocator_IM IM) l (s, om)).1 <= sum_weights equivocating)%Rmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
c: composite_state (equivocator_IM IM)
Heqc: c = (composite_transition (equivocator_IM IM) l (s, om)).1
Hfixed: state_has_fixed_equivocation IM (elements equivocating) c(equivocation_fault c <= sum_weights equivocating)%Rmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
c: composite_state (equivocator_IM IM)
Hfixed: state_has_fixed_equivocation IM (elements equivocating) c(equivocation_fault c <= sum_weights equivocating)%Rmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
c: composite_state (equivocator_IM IM)
Hfixed: equivocating_indices IM (finite.enum index) c ⊆ elements equivocating(equivocation_fault c <= sum_weights equivocating)%Rmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
c: composite_state (equivocator_IM IM)
Hfixed: equivocating_indices IM (finite.enum index) c ⊆ elements equivocating(sum_weights (equivocating_validators c) <= sum_weights equivocating)%Rmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
c: composite_state (equivocator_IM IM)
Hfixed: equivocating_indices IM (finite.enum index) c ⊆ elements equivocatingequivocating_validators c ⊆ equivocatingmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
c: composite_state (equivocator_IM IM)
Hfixed: equivocating_indices IM (finite.enum index) c ⊆ elements equivocating
i: index
Hi: i ∈ equivocating_validators ci ∈ equivocatingmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
c: composite_state (equivocator_IM IM)
Hfixed: equivocating_indices IM (finite.enum index) c ⊆ elements equivocating
i: index
Hi: i ∈ equivocating_validators ci ∈ equivocating_indices IM (finite.enum index) cby eapply equivocating_indices_equivocating_validators. Qed. End sec_fixed_limited_state_equivocation. Section sec_limited_equivocation_simulation. Context {message index : Type} (IM : index -> VLSM message) `{forall i, HasBeenSentCapability (IM i)} `{forall i, HasBeenReceivedCapability (IM i)} (threshold : R) `{ReachableThreshold index Ci threshold} `{!finite.Finite index} (XE : VLSM message := equivocators_limited_equivocations_vlsm (Ci := Ci) IM threshold) .message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
Limited:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
equivocating: Ci
Fixed:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
Hlimited: (sum_weights equivocating <= threshold)%R
l: label (free_composite_vlsm (equivocator_IM IM))
s: state (free_composite_vlsm (equivocator_IM IM))
om: option message
Hno_equiv: equivocators_no_equivocations_constraint IM l (s, om)
c: composite_state (equivocator_IM IM)
Hfixed: equivocating_indices IM (finite.enum index) c ⊆ elements equivocating
i: index
Hi: i ∈ equivocating_validators ci ∈ list_to_set (equivocating_indices IM (finite.enum index) c)
If a trace has the fixed_limited_equivocation_property, then it can be
simulated by the composition of equivocators with no message-equivocation and
limited state-equivocation.
message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
isX: composite_state IM
trX: list (composite_transition_item IM)
HtrX: fixed_limited_equivocation_prop IM threshold Datatypes.id isX trX∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = isX ∧ equivocators_total_state_project IM s = finite_trace_last isX trX ∧ equivocators_total_trace_project IM tr = trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
isX: composite_state IM
trX: list (composite_transition_item IM)
HtrX: fixed_limited_equivocation_prop IM threshold Datatypes.id isX trX∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = isX ∧ equivocators_total_state_project IM s = finite_trace_last isX trX ∧ equivocators_total_trace_project IM tr = trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
isX: composite_state IM
trX: list (composite_transition_item IM)
equivocating: Ci
Hlimited: (sum_weights equivocating <= threshold)%R
HtrX: finite_valid_trace (fixed_equivocation_vlsm_composition IM (fin_sets.set_map Datatypes.id equivocating)) isX trX∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = isX ∧ equivocators_total_state_project IM s = finite_trace_last isX trX ∧ equivocators_total_trace_project IM tr = trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
isX: composite_state IM
trX: list (composite_transition_item IM)
equivocating: Ci
Hlimited: (sum_weights equivocating <= threshold)%R
HtrX: finite_valid_trace_init_to {| vlsm_type := free_composite_vlsm IM; vlsm_machine := {| vlsm_type := fixed_equivocation_vlsm_composition IM (fin_sets.set_map Datatypes.id equivocating); vlsm_machine := strong_fixed_equivocation_vlsm_composition IM (fin_sets.set_map Datatypes.id equivocating) |} |} isX (finite_trace_last isX trX) trX∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = isX ∧ equivocators_total_state_project IM s = finite_trace_last isX trX ∧ equivocators_total_trace_project IM tr = trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
isX: composite_state IM
trX: list (composite_transition_item IM)
equivocating: Ci
Hlimited: (sum_weights equivocating <= threshold)%R
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His: equivocators_total_state_project IM is = isX
Hs: equivocators_total_state_project IM s = finite_trace_last isX trX
Htr: equivocators_total_trace_project IM tr = trX
Hptr: finite_valid_trace_init_to (equivocators_fixed_equivocations_vlsm IM (elements (fin_sets.set_map Datatypes.id equivocating))) is s tr
Houtput: finite_trace_last_output trX = finite_trace_last_output tr∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = isX ∧ equivocators_total_state_project IM s = finite_trace_last isX trX ∧ equivocators_total_trace_project IM tr = trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
isX: composite_state IM
trX: list (composite_transition_item IM)
equivocating: Ci
Hlimited: (sum_weights equivocating <= threshold)%R
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His: equivocators_total_state_project IM is = isX
Hs: equivocators_total_state_project IM s = finite_trace_last isX trX
Htr: equivocators_total_trace_project IM tr = trX
Hptr: finite_valid_trace_init_to (equivocators_fixed_equivocations_vlsm IM (elements (fin_sets.set_map Datatypes.id equivocating))) is s tr
Houtput: finite_trace_last_output trX = finite_trace_last_output trfinite_valid_trace_init_to XE is s trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
isX: composite_state IM
trX: list (composite_transition_item IM)
equivocating: Ci
Hlimited: (sum_weights equivocating <= threshold)%R
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His: equivocators_total_state_project IM is = isX
Hs: equivocators_total_state_project IM s = finite_trace_last isX trX
Htr: equivocators_total_trace_project IM tr = trX
Houtput: finite_trace_last_output trX = finite_trace_last_output trVLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements (fin_sets.set_map Datatypes.id equivocating)))) (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_limited_equivocations_constraint IM threshold))message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
isX: composite_state IM
trX: list (composite_transition_item IM)
equivocating: Ci
Hlimited: (sum_weights equivocating <= threshold)%R
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His: equivocators_total_state_project IM is = isX
Hs: equivocators_total_state_project IM s = finite_trace_last isX trX
Htr: equivocators_total_trace_project IM tr = trX
Houtput: finite_trace_last_output trX = finite_trace_last_output trVLSM_incl {| vlsm_type := free_composite_vlsm (equivocator_IM IM); vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := s0 (free_composite_vlsm (equivocator_IM IM)) (free_composite_vlsm (equivocator_IM IM)); initial_message_prop := initial_message_prop; transition := transition; valid := λ (l : label (free_composite_vlsm (equivocator_IM IM))) (som : state (free_composite_vlsm (equivocator_IM IM)) * option message), valid l som ∧ equivocators_fixed_equivocations_constraint IM (elements (fin_sets.set_map Datatypes.id equivocating)) l som |} |} {| vlsm_type := free_composite_vlsm (equivocator_IM IM); vlsm_machine := constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating)) |}by set_solver. Qed. Section sec_equivocators_simulating_annotated_limited. Context `{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} (no_initial_messages_in_IM : no_initial_messages_in_IM_prop IM) (sender : message -> option index) (Hchannel : channel_authentication_prop IM Datatypes.id sender) .message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
isX: composite_state IM
trX: list (composite_transition_item IM)
equivocating: Ci
Hlimited: (sum_weights equivocating <= threshold)%R
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His: equivocators_total_state_project IM is = isX
Hs: equivocators_total_state_project IM s = finite_trace_last isX trX
Htr: equivocators_total_trace_project IM tr = trX
Houtput: finite_trace_last_output trX = finite_trace_last_output trelements (fin_sets.set_map Datatypes.id equivocating) ⊆ elements equivocatingmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H19: ∀ i : index, MessageDependencies (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
sender: message → option index
Hchannel: channel_authentication_prop IM Datatypes.id sender
isX, sX: state (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender)
trX: list transition_item
HtrX: finite_valid_trace_init_to (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) isX sX trX∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = original_state isX ∧ equivocators_total_state_project IM s = original_state sX ∧ equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (annotated_type (free_composite_vlsm IM) Ci) (composite_type IM) Datatypes.id original_state trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H19: ∀ i : index, MessageDependencies (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
sender: message → option index
Hchannel: channel_authentication_prop IM Datatypes.id sender
isX, sX: state (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender)
trX: list transition_item
HtrX: finite_valid_trace_init_to (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) isX sX trX∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = original_state isX ∧ equivocators_total_state_project IM s = original_state sX ∧ equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (annotated_type (free_composite_vlsm IM) Ci) (composite_type IM) Datatypes.id original_state trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H19: ∀ i : index, MessageDependencies (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
sender: message → option index
Hchannel: channel_authentication_prop IM Datatypes.id sender
isX, sX: state (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender)
trX: list transition_item
HtrX: finite_valid_trace_init_to (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) isX sX trX
HeqsX: finite_trace_last isX trX = sX∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = original_state isX ∧ equivocators_total_state_project IM s = original_state sX ∧ equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (annotated_type (free_composite_vlsm IM) Ci) (composite_type IM) Datatypes.id original_state trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H19: ∀ i : index, MessageDependencies (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
sender: message → option index
Hchannel: channel_authentication_prop IM Datatypes.id sender
isX, sX: state (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender)
trX: list transition_item
HeqsX: finite_trace_last isX trX = sX
HtrX: fixed_limited_equivocation_prop IM threshold Datatypes.id (original_state isX) (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX)∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = original_state isX ∧ equivocators_total_state_project IM s = original_state sX ∧ equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (annotated_type (free_composite_vlsm IM) Ci) (composite_type IM) Datatypes.id original_state trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H19: ∀ i : index, MessageDependencies (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
sender: message → option index
Hchannel: channel_authentication_prop IM Datatypes.id sender
isX, sX: state (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender)
trX: list transition_item
HeqsX: finite_trace_last isX trX = sX
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His_pr: equivocators_total_state_project IM is = original_state isX
Hpr_s: equivocators_total_state_project IM s = finite_trace_last (original_state isX) (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX)
Htr_pr: equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX
Htr: finite_valid_trace_init_to XE is s tr
Houtput: finite_trace_last_output (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX) = finite_trace_last_output tr∃ (is s : state (free_composite_vlsm (equivocator_IM IM))) (tr : list (composite_transition_item (equivocator_IM IM))), equivocators_total_state_project IM is = original_state isX ∧ equivocators_total_state_project IM s = original_state sX ∧ equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (annotated_type (free_composite_vlsm IM) Ci) (composite_type IM) Datatypes.id original_state trX ∧ finite_valid_trace_init_to XE is s tr ∧ finite_trace_last_output trX = finite_trace_last_output trmessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H19: ∀ i : index, MessageDependencies (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
sender: message → option index
Hchannel: channel_authentication_prop IM Datatypes.id sender
isX: state (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender)
trX: list transition_item
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His_pr: equivocators_total_state_project IM is = original_state isX
Hpr_s: equivocators_total_state_project IM s = finite_trace_last (original_state isX) (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX)
Htr_pr: equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX
Htr: finite_valid_trace_init_to XE is s tr
Houtput: finite_trace_last_output (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX) = finite_trace_last_output trequivocators_total_state_project IM s = original_state (finite_trace_last isX trX)message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H19: ∀ i : index, MessageDependencies (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
sender: message → option index
Hchannel: channel_authentication_prop IM Datatypes.id sender
isX: state (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender)
trX: list transition_item
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His_pr: equivocators_total_state_project IM is = original_state isX
Hpr_s: equivocators_total_state_project IM s = finite_trace_last (original_state isX) (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX)
Htr_pr: equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX
Htr: finite_valid_trace_init_to XE is s tr
Houtput: finite_trace_last_output (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX) = finite_trace_last_output trfinite_trace_last_output trX = finite_trace_last_output trby erewrite Hpr_s, <- pre_VLSM_embedding_finite_trace_last.message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H19: ∀ i : index, MessageDependencies (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
sender: message → option index
Hchannel: channel_authentication_prop IM Datatypes.id sender
isX: state (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender)
trX: list transition_item
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His_pr: equivocators_total_state_project IM is = original_state isX
Hpr_s: equivocators_total_state_project IM s = finite_trace_last (original_state isX) (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX)
Htr_pr: equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX
Htr: finite_valid_trace_init_to XE is s tr
Houtput: finite_trace_last_output (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX) = finite_trace_last_output trequivocators_total_state_project IM s = original_state (finite_trace_last isX trX)by rewrite <- Houtput; apply pre_VLSM_embedding_finite_trace_last_output. Qed. End sec_equivocators_simulating_annotated_limited. Context `{FinSet message Cm} (sender : message -> option index) `{RelDecision _ _ (is_equivocating_tracewise_no_has_been_sent IM (fun i => i) sender)} (Limited : VLSM message := tracewise_limited_equivocation_vlsm_composition IM (Cv := Ci) threshold Datatypes.id sender) (message_dependencies : message -> Cm) .message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
message_dependencies, full_message_dependencies: message → Cm
FullMessageDependencies0: FullMessageDependencies message_dependencies full_message_dependencies
H19: ∀ i : index, MessageDependencies (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
sender: message → option index
Hchannel: channel_authentication_prop IM Datatypes.id sender
isX: state (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender)
trX: list transition_item
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
His_pr: equivocators_total_state_project IM is = original_state isX
Hpr_s: equivocators_total_state_project IM s = finite_trace_last (original_state isX) (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX)
Htr_pr: equivocators_total_trace_project IM tr = pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX
Htr: finite_valid_trace_init_to XE is s tr
Houtput: finite_trace_last_output (pre_VLSM_embedding_finite_trace_project (msg_dep_limited_equivocation_vlsm IM threshold full_message_dependencies sender) (composite_type IM) Datatypes.id original_state trX) = finite_trace_last_output trfinite_trace_last_output trX = finite_trace_last_output tr
Any valid state for the composition of regular components under a limited
message-equivocation constraint is the projection of a valid state of
the composition of equivocators under a no message-equivocation and limited
state-equivocation constraint.
message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
sender: message → option index
H19: RelDecision (is_equivocating_tracewise_no_has_been_sent IM (λ i : index, i) sender)
Limited:= tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender: VLSM message
message_dependencies: message → Cm
Hwitnessed_equivocation: WitnessedEquivocationCapability IM threshold Datatypes.id sender
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H20: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM Datatypes.id sender∀ sX : state Limited, valid_state_prop Limited sX → ∃ s : state (free_composite_vlsm (equivocator_IM IM)), equivocators_total_state_project IM s = sX ∧ valid_state_prop XE smessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
sender: message → option index
H19: RelDecision (is_equivocating_tracewise_no_has_been_sent IM (λ i : index, i) sender)
Limited:= tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender: VLSM message
message_dependencies: message → Cm
Hwitnessed_equivocation: WitnessedEquivocationCapability IM threshold Datatypes.id sender
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H20: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM Datatypes.id sender∀ sX : state Limited, valid_state_prop Limited sX → ∃ s : state (free_composite_vlsm (equivocator_IM IM)), equivocators_total_state_project IM s = sX ∧ valid_state_prop XE smessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
sender: message → option index
H19: RelDecision (is_equivocating_tracewise_no_has_been_sent IM (λ i : index, i) sender)
Limited:= tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender: VLSM message
message_dependencies: message → Cm
Hwitnessed_equivocation: WitnessedEquivocationCapability IM threshold Datatypes.id sender
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H20: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM Datatypes.id sender
sX: state Limited
HsX: valid_state_prop Limited sX∃ s : state (free_composite_vlsm (equivocator_IM IM)), equivocators_total_state_project IM s = sX ∧ valid_state_prop XE smessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
sender: message → option index
H19: RelDecision (is_equivocating_tracewise_no_has_been_sent IM (λ i : index, i) sender)
Limited:= tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender: VLSM message
message_dependencies: message → Cm
Hwitnessed_equivocation: WitnessedEquivocationCapability IM threshold Datatypes.id sender
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H20: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM Datatypes.id sender
sX: state Limited
isX: state (tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender)
trX: list transition_item
HsX: finite_trace_last isX trX = sX
HtrX: fixed_limited_equivocation_prop IM threshold Datatypes.id isX trX∃ s : state (free_composite_vlsm (equivocator_IM IM)), equivocators_total_state_project IM s = sX ∧ valid_state_prop XE smessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
sender: message → option index
H19: RelDecision (is_equivocating_tracewise_no_has_been_sent IM (λ i : index, i) sender)
Limited:= tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender: VLSM message
message_dependencies: message → Cm
Hwitnessed_equivocation: WitnessedEquivocationCapability IM threshold Datatypes.id sender
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H20: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM Datatypes.id sender
sX: state Limited
isX: state (tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender)
trX: list transition_item
HsX: finite_trace_last isX trX = sX
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
Hpr_s: equivocators_total_state_project IM s = finite_trace_last isX trX
Htr: finite_valid_trace_init_to XE is s tr∃ s : state (free_composite_vlsm (equivocator_IM IM)), equivocators_total_state_project IM s = sX ∧ valid_state_prop XE smessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
sender: message → option index
H19: RelDecision (is_equivocating_tracewise_no_has_been_sent IM (λ i : index, i) sender)
Limited:= tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender: VLSM message
message_dependencies: message → Cm
Hwitnessed_equivocation: WitnessedEquivocationCapability IM threshold Datatypes.id sender
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H20: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM Datatypes.id sender
sX: state Limited
isX: state (tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender)
trX: list transition_item
HsX: finite_trace_last isX trX = sX
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
Hpr_s: equivocators_total_state_project IM s = finite_trace_last isX trX
Htr: finite_valid_trace_init_to XE is s trequivocators_total_state_project IM s = sX ∧ valid_state_prop XE smessage, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
sender: message → option index
H19: RelDecision (is_equivocating_tracewise_no_has_been_sent IM (λ i : index, i) sender)
Limited:= tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender: VLSM message
message_dependencies: message → Cm
Hwitnessed_equivocation: WitnessedEquivocationCapability IM threshold Datatypes.id sender
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H20: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM Datatypes.id sender
isX: state (tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender)
trX: list transition_item
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
Hpr_s: equivocators_total_state_project IM s = finite_trace_last isX trX
Htr: finite_valid_trace_init_to XE is s trequivocators_total_state_project IM s = finite_trace_last isX trX ∧ valid_state_prop XE sby apply valid_trace_last_pstate in Htr. Qed. End sec_limited_equivocation_simulation.message, index: Type
IM: index → VLSM message
H: ∀ i : index, HasBeenSentCapability (IM i)
H0: ∀ i : index, HasBeenReceivedCapability (IM i)
threshold: R
Ci: Type
Hm: Measurable index
H1: ElemOf index Ci
H2: Empty Ci
H3: Singleton index Ci
H4: Union Ci
H5: Intersection Ci
H6: Difference Ci
H7: Elements index Ci
EqDecision0: EqDecision index
H8: FinSet index Ci
H9: ReachableThreshold index Ci threshold
H10: finite.Finite index
XE:= equivocators_limited_equivocations_vlsm IM threshold: VLSM message
Cm: Type
H11: ElemOf message Cm
H12: Empty Cm
H13: Singleton message Cm
H14: Union Cm
H15: Intersection Cm
H16: Difference Cm
H17: Elements message Cm
EqDecision1: EqDecision message
H18: FinSet message Cm
sender: message → option index
H19: RelDecision (is_equivocating_tracewise_no_has_been_sent IM (λ i : index, i) sender)
Limited:= tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender: VLSM message
message_dependencies: message → Cm
Hwitnessed_equivocation: WitnessedEquivocationCapability IM threshold Datatypes.id sender
Irreflexive0: Irreflexive (msg_dep_happens_before message_dependencies)
H20: ∀ i : index, MessageDependencies (IM i) message_dependencies
Hfull: ∀ i : index, message_dependencies_full_node_condition_prop (IM i) message_dependencies
no_initial_messages_in_IM: no_initial_messages_in_IM_prop IM
can_emit_signed: channel_authentication_prop IM Datatypes.id sender
isX: state (tracewise_limited_equivocation_vlsm_composition IM threshold Datatypes.id sender)
trX: list transition_item
is, s: state (free_composite_vlsm (equivocator_IM IM))
tr: list (composite_transition_item (equivocator_IM IM))
Hpr_s: equivocators_total_state_project IM s = finite_trace_last isX trX
Htr: finite_valid_trace_init_to XE is s trvalid_state_prop XE s