IPAddr grammar bridge lemmas #
These lemmas connect the parser-independent grammar definitions in
Cedar.Thm.Ext.IPAddr.Grammar (IsWfIPNet, IsIPNetValue, and the component value functions) to
the actual Cedar.Spec.Ext.IPAddr.parse. They culminate in the per-form parse characterizations
the aggregator parse_sound/parse_complete build on.
The parser structure (from Cedar.Spec.Ext.IPAddr) is:
parse str = if (parseIPv4Net str).isSome then parseIPv4Net str else parseIPv6Net str;parseIPv4Netsplits on'/', parses fourparseNumV4groups (split on'.') and an optionalparsePrefixNatprefix;parseIPv6Netsplits on'/', parses the address viaparseSegsV6(which handles::viasplitOn "::"and pads to eight hextets) and an optionalparsePrefixNatprefix.
Each numeric primitive (parseNumV4, parseNumV6, parsePrefixNat) enforces the length /
leading-zero / range side conditions that the grammar predicates transcribe.
Numeric-token bridges #
IPv4 form #
IPv6 form #
Specialized model of String.splitOn "::" #
String.splitOn "::" agrees with the proof-layer character-list model on every string.