package codex
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=bc7266a140c6886add673ede90e335d3
sha512=8da42c0ff2c1098c5f9cb2b5b43b306faf7ac93b8f5ae00c176918cee761f249ff45b29309f31a05bbcf6312304f86a0d5a000eb3f1094d3d3c2b9b4c7f5c386
doc/codex.terms/Terms/Relations/Equality/Action/index.html
Module Equality.ActionSource
Parameters
module B : sig ... endSignature
type bitvector = B.bitvectortype integer = B.integertype boolean = B.booleantype enum = B.enumtype (_, _) mapping = | BitvectorMapping : (bitvector, Operator.Function_symbol.bitvector) mapping| IntegerMapping : (integer, Operator.Function_symbol.integer) mapping| BooleanMapping : (boolean, Operator.Function_symbol.boolean) mapping| EnumMapping : (enum, Operator.Function_symbol.enum) mapping
One-to-one correspodance between value types and term types
Existential wrapper for mappings
val apply_relation :
'value_parent ->
('term_child, 'term_parent) relation ->
('value_parent, 'term_parent) mapping ->
'term_child wrapperapply_relation vp rel proof is the value vc obtained by applying relation rel to value vp. This is a simple forward transfer function.
The proof terms are there to ensure correspondance between the types of values (B.bitvector, B.boolean, B.integer, B.enum) and of terms (TC.bitvector, TC.boolean, TC.integer, TC.enum)
val refine_relation :
'value_parent ->
'value_child ->
('term_child, 'term_parent) relation ->
('value_parent, 'term_parent) mapping ->
('value_child, 'term_child) mapping ->
'value_parent optionrefine_relation ~size vp vc rel proof_p proof_c refines the value vp into, using knowledge that applying rel to vp must be in vc. This is a simple backward transfer function. None is returned when no new information can be deduced.
Note: this returns the newly learned value. It should be intersected with vp for best precision.
The proof terms are there to ensure correspondance between the types of values (B.bitvector, B.boolean, B.integer, B.enum) and of terms (TC.bitvector, TC.boolean, TC.integer, TC.enum)