VBL Examples: Complete Verification Boundary Patterns
Lending Eligibility
Section titled “Lending Eligibility”Verify a loan applicant’s eligibility based on credit score, debt ratio, account history, and identity verification.
# Applicant Eligibility Checkrequire_evidence: credit_scorerequire_evidence: debt_to_income_pctrequire_evidence: account_age_monthsrequire_evidence: identity_verified
predicate: creditworthy: credit_score >= 600predicate: affordable: debt_to_income_pct <= 40predicate: established: account_age_months >= 6predicate: identity_confirmed: identity_verified == 1All predicates are conjunctive: every one must pass for an ASSERT verdict.
Disbursement Authorization
Section titled “Disbursement Authorization”Authorize a loan disbursement by verifying that no cross-source conflicts exist and the amount is within authority.
# Disbursement Authorizationrequire_evidence: income_claim_conflictrequire_evidence: identity_claim_conflictrequire_evidence: employment_claim_conflictrequire_evidence: loan_amount_cents
predicate: income_consistent: income_claim_conflict == 0predicate: identity_consistent: identity_claim_conflict == 0predicate: employment_consistent: employment_claim_conflict == 0predicate: within_authority: loan_amount_cents <= 500000Wire Transfer Authorization
Section titled “Wire Transfer Authorization”A more complex boundary using governance metadata, named sets, boolean comparisons, prohibitions, predicate failure messages, and set membership operators.
boundary_id: B_FIN_WIREversion: 1scope: wire_transfer
# Named set of sanctioned jurisdictionsdefine_set blocked_jurisdictions: ("NK", "IR", "SY", "CU")
require_type: sanctions_cleared: booleanrequire_type: approver_count: integerrequire_type: destination_country: string
# Stage 1: All evidence requiredrequire_evidence: sanctions_screeningrequire_evidence: dual_approvalrequire_evidence: amount_threshold
# Stage 2: Manual overrides never allowedprohibit_evidence: manual_override_flag
# Stage 3: Predicates with failure messagespredicate: sanctions_ok: sanctions_cleared == true | "Sanctions screening must clear"predicate: dual_approved: approver_count >= 2predicate: within_daily_limit: within_daily_limit == 1predicate: not_blocked: destination_country NOT IN @blocked_jurisdictions | "Transfers to sanctioned jurisdictions are prohibited"predicate: has_required_approver: approver_list CONTAINS "compliance_officer"Note: The @blocked_jurisdictions reference resolves to the named set defined by define_set. The CONTAINS operator checks whether a list-valued field includes a specific value.
Clinical AI Authorization
Section titled “Clinical AI Authorization”Governance metadata, provenance requirements, named sets, type declarations, prohibitions, and predicate failure messages.
boundary_id: B_HEALTH_CLINICALversion: 1scope: clinical_ai
# Type declarations enforce evidence field typesrequire_type: formulary_approved: integerrequire_type: consent_signed: integerrequire_type: license_state: string
# Named set of valid license statesdefine_set valid_states: ("CA", "NY", "TX", "FL", "IL")
# Stage 1: Admissibilityrequire_evidence: physician_license_verifiedrequire_provenance: physician_license_verified: npi_registryrequire_evidence: formulary_checkrequire_evidence: patient_consent_on_file
# Stage 2: Prohibition. Model confidence scores leak AI internalsprohibit_evidence: model_confidence_score
# Stage 3: Predicates with messages for audit trailpredicate: formulary_approved: formulary_approved == 1 | "Medication must be on approved formulary"predicate: consent_signed: consent_signed == 1 | "Patient consent is required"predicate: valid_license_state: license_state IN @valid_states | "Physician must be licensed in a supported state"Prescription Verification
Section titled “Prescription Verification”Conditional evidence requirements, field-to-field comparisons, and eta cap.
boundary_id: B_HEALTH_PRESCRIPTIONversion: 1scope: pharmacyeta_cap: 3
require_type: conflicts_found: integerrequire_type: prescribed_mg: integerrequire_type: max_daily_mg: integerrequire_type: schedule_class: integer
require_evidence: prescriber_authorizationrequire_provenance: prescriber_authorization: dea_registryrequire_evidence: drug_interaction_checkrequire_evidence: dosage_validationrequire_evidence: schedule_class# Conditional: controlled substance needs extra documentationrequire_evidence IF schedule_class >= 2: controlled_substance_log
predicate: no_drug_conflicts: conflicts_found == 0 | "No drug interaction conflicts allowed"# Field-to-field comparison: prescribed dose must not exceed maxpredicate: dosage_safe: prescribed_mg <= max_daily_mg | "Prescribed dose exceeds maximum daily limit"predicate: prescriber_valid: prescriber_valid == 1The require_evidence IF directive makes controlled_substance_log required only when schedule_class is 2 or higher. The field-to-field comparison prescribed_mg <= max_daily_mg compares two workload fields directly.
Ransomware Containment with BOUNDARY Block
Section titled “Ransomware Containment with BOUNDARY Block”When you need non-conjunctive logic (OR, NOT, or complex grouping), use a BOUNDARY block with inline field comparisons.
boundary_id: B_CYBER_RANSOMWAREversion: 1scope: incident_responseeta_cap: 5
# Threat classifications that permit automated containmentdefine_set containable_threats: ("ransomware_c2", "lateral_movement", "data_exfiltration")
require_type: confidence_level: integerrequire_type: affected_systems: integerrequire_type: critical_systems_impacted: integerrequire_type: indicator_type: stringrequire_type: severity: string
require_evidence: threat_intelligencerequire_evidence: blast_radius_assessmentrequire_evidence: incident_classification
# Automated bypass attempts are never allowedprohibit_evidence: automated_escalation_bypass# Block if severity indicates false positiveprohibit_evidence: severity_override WHERE severity_override == "FALSE_POSITIVE"
predicate: high_confidence: confidence_level >= 80predicate: manageable_blast: affected_systems <= 50predicate: not_critical_infra: critical_systems_impacted == 0# String comparison + IN operatorpredicate: severity_actionable: severity IN ("HIGH", "CRITICAL")predicate: threat_containable: indicator_type IN @containable_threats | "Only known containable threat types may be auto-contained"
// Full containment logic with severity gatingBOUNDARY { confidence_level >= 80 AND severity IN ("HIGH", "CRITICAL") AND indicator_type IN @containable_threats AND (affected_systems <= 50 OR NOT critical_systems_impacted == 0)}The BOUNDARY block contains inline field comparisons, not predicate name references. It is used here because the logic requires OR and NOT grouping, which named predicates (conjunctive-only) cannot express.
Refund Authorization
Section titled “Refund Authorization”Field-to-field comparison, CONTAINS operator, named sets, and a BOUNDARY block.
boundary_id: B_ECOM_REFUNDversion: 1scope: order_management
define_set auto_refund_reasons: ("DEFECTIVE", "NOT_AS_DESCRIBED", "DAMAGED_IN_SHIPPING")
require_type: return_eligible: integerrequire_type: risk_score: integerrequire_type: order_total_cents: integerrequire_type: refund_amount_cents: integerrequire_type: refund_reason: string
require_evidence: order_verificationrequire_evidence: return_eligibilityrequire_evidence: fraud_screening
predicate: return_eligible_check: return_eligible == 1predicate: low_fraud_risk: risk_score <= 30 | "Fraud risk score too high for automatic refund"predicate: high_value: order_total_cents >= 10000# Field-to-field: refund cannot exceed original orderpredicate: refund_within_order: refund_amount_cents <= order_total_cents | "Refund amount cannot exceed original order total"# IN set membership for auto-eligible reasonspredicate: auto_eligible_reason: refund_reason IN @auto_refund_reasons# CONTAINS: check if fraud flags list includes known patternpredicate: no_velocity_flag: fraud_flags CONTAINS "velocity_ok"
// Low-risk + refund within order + eligible reason = auto-approveBOUNDARY { refund_amount_cents <= order_total_cents AND risk_score <= 30 AND (return_eligible == 1 OR (NOT order_total_cents >= 10000 AND refund_reason IN @auto_refund_reasons))}Payout Execution
Section titled “Payout Execution”A minimal boundary for payout execution verification.
# Payout Execution Verificationrequire_evidence: payout_terminal_statusrequire_evidence: amount
predicate: payout_succeeded: payout_terminal_status == 1predicate: has_amount: amount > 0Next Steps
Section titled “Next Steps”- Language Reference: complete grammar specification
- Writing Boundaries: step-by-step boundary creation guide
- Language Overview: all VBL constructs
