src/Certificate.bend fails
raw source on the hub · import ber-core-store@0.1.2.0/src/Certificate.bend as Certificate
6 imports
import Base import ./Reading.bend as Reading import ./StateTree.bend as StateTree import ./History.bend as History import ./Merging.bend as Merging import ./Store.bend as Store
Definitions
def decide_entry_present source · line 16 · raw
@key_matches:Bool -> @+head_value:String -> @+target_value:String -> @tail_result:Bool -> Bool
A key/value pair counts as present only when both match.
def entry_present_in source · line 24 · raw
@+target_key:String -> @+target_value:String -> @entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> Bool
Scans entries for an exact key/value pair.
def decide_all_present source · line 32 · raw
@head_present:Bool -> @tail_result:Bool -> Bool
Conjunction step: a missing head fails the whole check.
def all_present_in source · line 40 · raw
@source_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+target_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> Bool
Every source entry must occur in the target list.
def entries_equal source · line 48 · raw
@+first_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+second_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> Bool
Set equality both directions; exact because lists are unique-keyed.
def decide_law_step source · line 52 · raw
@head_passed:Bool -> @tail_result:Bool -> Bool
Conjunction step over law evidence.
def all_remaining_pass source · line 60 · raw
@remaining_checks:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.LawCheck> -> Bool
Every remaining check must have passed.
def verify_laws_step source · line 68 · raw
@checked_laws:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.LawCheck> -> Bool
Non-empty evidence with every check passed; empty evidence rejects.
def verify_entries_step source · line 76 · raw
@entries_match:Bool -> @+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> Bool
Matching entries unlock the law-evidence check.
def verify_recompute_step source · line 84 · raw
@recomputed_outcome:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeOutcome -> @+merged_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> Bool
A clean recomputation unlocks the entry-set check; conflicts reject.
def verify_hash_step source · line 92 · raw
@hash_matches:Bool -> @+base_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+first_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+second_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+merged_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> Bool
A matching result hash unlocks the merge recomputation; mismatch rejects.
def decide_strategy_known source · line 100 · raw
@strategy_known:Bool -> @+base_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+first_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+second_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+merged_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> Bool
Only the union-disjoint strategy verifies; anything else rejects.
def verify_merge_certificate_pure source · line 108 · raw
@+base_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+first_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+second_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+merged_entries:List<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Reading.ChainEntry> -> @+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> Bool
Pure verification core: re-derives strategy, hash, merge and law evidence.
def decide_verify_result source · line 112 · raw
@+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> @base_tree:0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode -> @first_tree:0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode -> @second_tree:0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode -> @result_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> Bool
A present result tree unlocks the pure core; a missing one rejects.
def decide_verify_second source · line 120 · raw
@+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> @base_tree:0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode -> @first_tree:0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode -> @second_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> @result_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> Bool
Unpacks the second tree or rejects when missing.
def decide_verify_first source · line 128 · raw
@+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> @base_tree:0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode -> @first_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> @second_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> @result_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> Bool
Unpacks the first tree or rejects when missing.
def decide_verify_trees source · line 136 · raw
@+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> @base_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> @first_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> @second_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> @result_maybe:Maybe<&2, 0x785d1b078f7f99a4ee2b9c7798398bc9/src/StateTree.StateTreeNode> -> Bool
Unpacks the base tree or rejects when missing.
def verify_certificate source · line 144 · raw
@+certificate:0x785d1b078f7f99a4ee2b9c7798398bc9/src/Merging.MergeCertificate -> 0x785d1b078f7f99a4ee2b9c7798398bc9/src/Store.Op<&2, Bool>
Shell: loads the four trees named by the certificate and runs the core.