Releases: runtimeverification/vlsm
Releases · runtimeverification/vlsm
VLSM release 1.3
Release known to be compatible with Coq 8.16 to 8.18 and Coq-std++ 1.9.0.
The theory behind this release is described in this paper. A mapping between different sections in the paper and the Coq definitions/results in the release is given below.
Section 2
| Paper | Coq |
|---|---|
| VLSM definition | VLSM.Core.VLSM#VLSMType, VLSM.Core.VLSM#VLSMMachine, VLSM.Core.VLSM#VLSM |
| valid states | VLSM.Core.VLSM#valid_state_prop |
| valid messages | VLSM.Core.VLSM#valid_message_prop, VLSM.Core.VLSM#option_valid_message_prop |
| valid states and messages | VLSM.Core.VLSM#valid_state_message_prop |
| valid transitions | VLSM.Core.VLSM#input_valid_transition |
| finite traces | VLSM.Core.VLSM#finite_valid_trace |
| infinite traces | VLSM.Core.VLSM#infinite_valid_trace |
| terminating traces | VLSM.Core.VLSM#terminating_trace_prop |
| complete traces | VLSM.Core.VLSM#complete_trace_prop |
Section 3
| Paper | Coq |
|---|---|
| free composition definition | VLSM.Core.Composition#free_composite_vlsm |
| constrained composition definition | VLSM.Core.Composition#composite_vlsm |
Section 4
| Paper | Coq |
|---|---|
| projection VLSM definition | VLSM.Core.ProjectionTraces#composite_vlsm_constrained_projection |
| projection of traces | VLSM.Core.Validator#component_projection |
| projection friendliness | VLSM.Core.VLSMProjections.VLSMTotalProjection#projection_friendly_prop |
| sub-trace | VLSM.Core.VLSMProjections.VLSMTotalProjection#VLSM_weak_projection_trace_project, VLSM.Core.VLSMProjections#pre_VLSM_projection_finite_trace_project |
| projection to a subset of components | VLSM.Core.SubProjectionTraces#pre_induced_sub_projection |
| composition of a subset of components | VLSM.Core.SubProjectionTraces#free_sub_vlsm_composition |
Section 5
| Paper | Coq |
|---|---|
| hasBeenSent capability | VLSM.Core.Equivocation#oracle_stepwise_props, VLSM.Core.Equivocation#HasBeenSentCapability |
| channel authentication assumption | VLSM.Core.Equivocation#channel_authentication_prop |
| no equivocation constraint | VLSM.Core.Equivocation.NoEquivocation#composite_no_equivocations |
| message dependencies assumption | VLSM.Core.MessageDependencies#MessageDependencies |
| full message dependencies assumption | VLSM.Core.MessageDependencies#FullMessageDependencies |
| full node assumption | VLSM.Core.MessageDependencies#message_dependencies_full_node_condition_prop |
| state equivocators | VLSM.Core.Equivocators.Equivocators#equivocator_vlsm |
| composition with fixed set of state equivocators | VLSM.Core.Equivocators.FixedEquivocation#equivocators_fixed_equivocations_vlsm |
| composition with fixed set of message equivocators | VLSM.Core.Equivocation.MsgDepFixedSetEquivocation#msg_dep_full_node_fixed_set_equivocation_constraint_subsumption |
| Relaxed model for fixed equivocation | VLSM.Core.Equivocation.FixedSetEquivocation#fixed_equivocation_vlsm_composition equivalent to the above under full-node assumptions as per VLSM.Core.Equivocation.MsgDepFixedSetEquivocation#full_node_fixed_equivocation_eq |
| equivalence between state and message fixed-equivocation for the relaxed model | VLSM.Core.Equivocators.FixedEquivocation#fixed_equivocators_valid_trace_project, VLSM.Core.Equivocators.FixedEquivocation#fixed_equivocators_vlsm_projection, VLSM.Core.Equivocators.FixedEquivocationSimulation#no_equivocating_equivocators_finite_valid_trace_init_to_rev |
| threshold | VLSM.Core.ReachableThreshold#ReachableThreshold, using Lib.Measurable for weights |
| composition with limited state-equivocation | VLSM.Core.Equivocators.LimitedStateEquivocation#equivocators_limited_equivocations_vlsm |
| traces with limited message-equivocation | VLSM.Core.Equivocation.LimitedMessageEquivocation#fixed_limited_equivocation_prop |
| simulation of traces with limited message-equivocation | VLSM.Core.Equivocators.LimitedEquivocationSimulation#limited_equivocators_finite_valid_trace_init_to_rev |
| projection to traces with limited message-equivocation | VLSM.Core.Equivocators.LimitedStateEquivocation#equivocators_limited_valid_trace_projects_to_fixed_limited_equivocation |
| The limited message-equivocation model | VLSM.Core.Equivocation.MsgDepLimitedEquivocation#full_node_limited_equivocation_vlsm |
| equivalence between state and message limited-equivocation | VLSM.Core.Equivocators.LimitedStateEquivocation#equivocators_limited_valid_trace_projects_to_annotated_limited_equivocation, VLSM.Core.Equivocators.LimitedEquivocationSimulation#equivocators_limited_valid_trace_projects_to_annotated_limited_equivocation_rev |
Section 6
| Paper | Coq |
|---|---|
| validator for a composition constraint | VLSM.Core.Validator#projection_validator_prop |
| alternative definition of validator | VLSM.Core.Validator#projection_validator_prop_alt |
| validator definition based on transitions | VLSM.Core.Validator#transition_validator |
| equivalence between definitions | VLSM.Core.Validator#projection_validator_messages_transitions, VLSM.Core.Validator#transition_validator_messages |
| Byzantine node with no attribution | VLSM.Core.ByzantineTraces#emit_any_message_vlsm |
| Byzantine nodes with message attribution | VLSM.Core.ByzantineTraces.FixedSetByzantineTraces#emit_any_signed_message_vlsm |
| the projection of a validator doesn't change in the presence of Byzantine faults | VLSM.Core.ByzantineTraces#validator_component_byzantine_fault_tolerance |
| model for fixed Byzantine behavior | VLSM.Core.ByzantineTraces.FixedSetByzantineTraces#non_byzantine_not_equivocating_constraint |
| equivalence to fixed-set message-equivocation model for validators | VLSM.Core.ByzantineTraces.FixedSetByzantineTraces#validator_fixed_non_byzantine_eq_fixed_non_equivocating |
| traces assuming a limited amount of Byzantine nodes | VLSM.Core.ByzantineTraces.LimitedByzantineTraces#limited_byzantine_trace_prop |
| equivalence to the limited message-equivocation model for validators | VLSM.Core.ByzantineTraces.LimitedByzantineTraces#msg_dep_validator_limited_non_equivocating_byzantine_traces_are_limited_non_equivocating |
Map of the ELMO example
UMO
Component and protocol
| Paper | Coq |
|---|---|
| UMO component | VLSM.Examples.ELMO.UMO#UMO_component |
| extract a unique trace from a state | VLSM.Examples.ELMO.UMO#constrained_state_contains_unique_constrained_trace |
| UMO protocol | VLSM.Examples.ELMO.UMO#UMO |
| extract a trace from a composite state | VLSM.Examples.ELMO.UMO#finite_valid_trace_from_to_UMO_state2trace_RUMO |
Observability relations
| Pa...
VLSM release 1.2
Release compatible with Coq 8.15 and Coq-std++ 1.7.0.
VLSM release 1.1
Release compatible with Coq 8.13 and Coq-std++ 1.6.0.
VLSM release 1.0
Release compatible with Coq 8.13 and Coq-std++ 1.5.0.