Module: Ibex::VerificationReport
- Defined in:
- lib/ibex/verification_report.rb,
lib/ibex/verification_report/builder.rb,
lib/ibex/verification_report/validator.rb,
lib/ibex/verification_report/canonical_ir.rb,
lib/ibex/verification_report/logical_path.rb,
sig/ibex/verification_report.rbs,
sig/ibex/verification_report/builder.rbs,
sig/ibex/verification_report/validator.rbs,
sig/ibex/verification_report/canonical_ir.rbs,
sig/ibex/verification_report/logical_path.rbs
Overview
A versioned, scoped report that binds bounded verification to input and data-only parser table identities without claiming to verify opaque code.
Defined Under Namespace
Modules: LogicalPath Classes: Builder, CanonicalIR, ValidationError, Validator
Constant Summary collapse
- IDENTIFIER =
"scoped_verification"- SCHEMA_VERSION =
1- IR_IDENTITY_SCOPE =
"source-logical-v1"- DEFAULT_MAX_STATES =
100_000- DEFAULT_MAX_ITEMS =
1_000_000- EXCLUDED_TRUST =
%w[ source_to_ir table_semantic_derivation generated_wrapper semantic_actions lexer_actions runtime application_hooks grammar_unambiguity ].freeze
Class Method Summary collapse
-
.canonical_automaton(automaton, source_records:) ⇒ Object
Rebuild the supplied Automaton IR with path-neutral source locations for one bundle.
- .render(automaton, table:, source_records:, table_path:, strict: false, max_states: DEFAULT_MAX_STATES, max_items: DEFAULT_MAX_ITEMS) ⇒ Object
-
.validate(source) ⇒ Object
Validate the closed report shape and its canonical evidence digest.
-
.validate_bundle(manifest_source:, report_source:, table_source:) ⇒ Object
Validate report, table, and manifest bytes as one non-cyclic bundle.
-
.validate_bundle_file(manifest_path) ⇒ Object
Resolve the report and table through a manifest and validate every published artifact before checking the cross-artifact identities.
Instance Method Summary collapse
-
#self?.canonical_automaton ⇒ IR::Automaton
Rebuild the supplied Automaton IR with path-neutral source locations for one bundle.
- #self?.render ⇒ String
-
#self?.validate ⇒ Hash[String, VerificationReport::Validator::json_value]
Validate the closed report shape and its canonical evidence digest.
-
#self?.validate_bundle ⇒ Hash[String, VerificationReport::Validator::json_value]
Validate report, table, and manifest bytes as one non-cyclic bundle.
-
#self?.validate_bundle_file ⇒ Hash[String, VerificationReport::Validator::json_value]
Resolve the report and table through a manifest and validate every published artifact before checking the cross-artifact identities.
Class Method Details
.canonical_automaton(automaton, source_records:) ⇒ Object
Rebuild the supplied Automaton IR with path-neutral source locations for one bundle.
33 34 35 |
# File 'lib/ibex/verification_report.rb', line 33 def canonical_automaton(automaton, source_records:) CanonicalIR.new(automaton, source_records: source_records).build end |
.render(automaton, table:, source_records:, table_path:, strict: false, max_states: DEFAULT_MAX_STATES, max_items: DEFAULT_MAX_ITEMS) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/ibex/verification_report.rb', line 40 def render(automaton, table:, source_records:, table_path:, strict: false, max_states: DEFAULT_MAX_STATES, max_items: DEFAULT_MAX_ITEMS) Builder.new( automaton, table: table, source_records: source_records, table_path: table_path, strict: strict, max_states: max_states, max_items: max_items ).render end |
.validate(source) ⇒ Object
Validate the closed report shape and its canonical evidence digest.
50 51 52 |
# File 'lib/ibex/verification_report.rb', line 50 def validate(source) Validator.new.validate(source) end |
.validate_bundle(manifest_source:, report_source:, table_source:) ⇒ Object
Validate report, table, and manifest bytes as one non-cyclic bundle.
56 57 58 59 60 |
# File 'lib/ibex/verification_report.rb', line 56 def validate_bundle(manifest_source:, report_source:, table_source:) Validator.new.validate_bundle( manifest_source: manifest_source, report_source: report_source, table_source: table_source ) end |
.validate_bundle_file(manifest_path) ⇒ Object
Resolve the report and table through a manifest and validate every published artifact before checking the cross-artifact identities.
65 66 67 |
# File 'lib/ibex/verification_report.rb', line 65 def validate_bundle_file(manifest_path) Validator.new.validate_bundle_file(manifest_path) end |
Instance Method Details
#self?.canonical_automaton ⇒ IR::Automaton
Rebuild the supplied Automaton IR with path-neutral source locations for one bundle.
24 |
# File 'sig/ibex/verification_report.rbs', line 24
def self?.canonical_automaton: (IR::Automaton automaton, source_records: Array[GenerationInput]) -> IR::Automaton
|
#self?.render ⇒ String
29 |
# File 'sig/ibex/verification_report.rbs', line 29
def self?.render: (IR::Automaton automaton, table: TableArtifact::Document, source_records: Array[GenerationInput], table_path: String, ?strict: bool, ?max_states: Integer, ?max_items: Integer) -> String
|
#self?.validate ⇒ Hash[String, VerificationReport::Validator::json_value]
Validate the closed report shape and its canonical evidence digest.
33 |
# File 'sig/ibex/verification_report.rbs', line 33
def self?.validate: (String source) -> Hash[String, VerificationReport::Validator::json_value]
|
#self?.validate_bundle ⇒ Hash[String, VerificationReport::Validator::json_value]
Validate report, table, and manifest bytes as one non-cyclic bundle.
37 |
# File 'sig/ibex/verification_report.rbs', line 37
def self?.validate_bundle: (manifest_source: String, report_source: String, table_source: String) -> Hash[String, VerificationReport::Validator::json_value]
|
#self?.validate_bundle_file ⇒ Hash[String, VerificationReport::Validator::json_value]
Resolve the report and table through a manifest and validate every published artifact before checking the cross-artifact identities.
42 |
# File 'sig/ibex/verification_report.rbs', line 42
def self?.validate_bundle_file: (String manifest_path) -> Hash[String, VerificationReport::Validator::json_value]
|