Skip to content

Commit a3f38ec

Browse files
hyperpolymathclaude
andcommitted
refactor(rename): VQL → VCL + verisimdb → verisim (ecosystem consistency)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent b1a8eb6 commit a3f38ec

11 files changed

Lines changed: 55 additions & 55 deletions

File tree

File renamed without changes.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ uuid = { version = "1", features = ["v4", "serde"] }
6666
# Lazy statics
6767
lazy_static = "1"
6868

69-
# VeriSimDB integration (optional — behind "verisimdb" feature)
69+
# VeriSimDB integration (optional — behind "verisim" feature)
7070
serde_cbor = { version = "0.11", optional = true }
7171
sha2 = { version = "0.10", optional = true }
7272

@@ -79,7 +79,7 @@ tempfile = "3"
7979
[features]
8080
default = []
8181
chapel = [] # Enable Chapel parallel proof search (requires Zig FFI library)
82-
verisimdb = [ # Enable VeriSimDB persistent proof storage (8-modality octads)
82+
verisim = [ # Enable VeriSimDB persistent proof storage (8-modality octads)
8383
"dep:serde_cbor",
8484
"dep:sha2",
8585
]

PROOF-NEEDS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ following the pattern in repos like `typed-wasm`, `proven`, `echidna`, or `boj-s
1313
- **Axiom tracking completeness**: Proven in `verification/proofs/idris2/AxiomCompleteness.idr`. (23 patterns, no false negatives). `unsafeCoerce` added to `axiom_tracker.rs`.
1414
- **Prover dispatch correctness**: Proven in `verification/proofs/idris2/DispatchCorrectness.idr`. (Logic family compatibility). `DispatchOrdering.idr` (Pipeline stages).
1515
- **Proof composition**: Proven in `proofs/agda/ProofComposition.agda`. (Soundness preservation, axiom conflict detection).
16-
- **VQL-UT query safety**: Proven in `EchidnaABI/VqlUt.idr`. (L5 Injection-free, L3 Type-safe boundary).
16+
- **VCL-UT query safety**: Proven in `EchidnaABI/VqlUt.idr`. (L5 Injection-free, L3 Type-safe boundary).
1717
- **GNN embedding faithfulness**: Documented in `EchidnaABI/Gnn.idr`. (Structural properties, feature bounds, score normalisation).
1818
- Extensive Idris2 ABI: `EchidnaABI/Types.idr` (655 lines), `EchidnaABI/Foreign.idr` (445 lines), `EchidnaABI/Layout.idr` (236 lines)
1919

@@ -22,7 +22,7 @@ following the pattern in repos like `typed-wasm`, `proven`, `echidna`, or `boj-s
2222
- **Axiom tracking completeness**: Prove `axiom_tracker.rs` detects ALL dangerous patterns (no false negatives for `sorry`, `Admitted`, `believe_me`, `postulate`, `assert_total`, `unsafeCoerce`)
2323
- **Prover dispatch correctness**: Prove that proof goals are dispatched to compatible provers (e.g., linear logic goals do not go to first-order ATP)
2424
- **GNN embedding faithfulness**: Prove that proof-graph GNN embeddings preserve structural properties of the original proof tree
25-
- **VQL-UT query safety**: Prove VQL queries are injection-free and type-safe at the ABI boundary
25+
- **VCL-UT query safety**: Prove VCL queries are injection-free and type-safe at the ABI boundary
2626
- **Proof composition**: Prove that combining sub-proofs from different provers preserves overall soundness (no implicit axiom conflicts)
2727

2828
## Recommended prover

docs/ECOSYSTEM-INTEGRATION.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,15 @@ fleet.complete(findings.len(), errors, files_analyzed)?;
8383
**How It Works**:
8484
1. Run `panic-attack assail` on echidna repo
8585
2. Generate JSON output with weak points
86-
3. Run `verisimdb-data/scripts/ingest-scan.sh echidna /tmp/scan.json`
87-
4. Push to verisimdb-data repo
86+
3. Run `verisim-data/scripts/ingest-scan.sh echidna /tmp/scan.json`
87+
4. Push to verisim-data repo
8888
5. Hypatia processes findings and learns patterns
8989

9090
**Command**:
9191
```bash
9292
cd "$REPOS_DIR/echidna" # Set REPOS_DIR to your local repos root
9393
panic-attack assail . --output /tmp/echidna-scan.json
94-
cd "$REPOS_DIR/verisimdb-data"
94+
cd "$REPOS_DIR/verisim-data"
9595
./scripts/ingest-scan.sh echidna /tmp/echidna-scan.json
9696
git push && git push gitlab main
9797
```
@@ -173,7 +173,7 @@ cd "$REPOS_DIR/gitbot-fleet"
173173
- Gitbot-fleet: `$REPOS_DIR/gitbot-fleet/`
174174
- Echidnabot: `$REPOS_DIR/echidna/echidnabot/`
175175
- Panic-attacker: `$REPOS_DIR/panic-attacker/`
176-
- VeriSimDB: `$REPOS_DIR/verisimdb-data/`
176+
- VeriSimDB: `$REPOS_DIR/verisim-data/`
177177
- Hypatia: `$REPOS_DIR/hypatia/`
178178
- Git-private-farm: `$REPOS_DIR/.git-private-farm/`
179179

echidnabot/src/config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ fn default_host() -> String {
7373
fn default_port() -> u16 {
7474
// 9001 is echidnabot's canonical port in the hyperpolymath port map.
7575
// (9000 = echidna core, 9001 = echidnabot, 9090 = hypatia.)
76-
// Was 8080 which collided with verisimdb and gitbot-fleet.
76+
// Was 8080 which collided with verisim and gitbot-fleet.
7777
9001
7878
}
7979

llm-warmup-user.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,4 @@ PMPL-1.0-or-later. Author: Jonathan D.A. Jewell.
106106

107107
- **Depends on**: proven (verified safety), Z3/CVC5/Lean/etc. (solver binaries)
108108
- **Used by**: hypatia (CI/CD intelligence), ecosystem-wide proof checking
109-
- **Siblings**: panic-attacker (scanning), verisimdb (data layer)
109+
- **Siblings**: panic-attacker (scanning), verisim (data layer)

src/rust/agent/memory.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -234,11 +234,11 @@ impl ProofMemory for SqliteMemory {
234234
/// while maintaining an in-memory cache for fast find_similar lookups.
235235
/// Falls back gracefully to in-memory-only if VeriSimDB is unreachable.
236236
///
237-
/// Enabled with `--features verisimdb` in Cargo.toml.
238-
#[cfg(feature = "verisimdb")]
237+
/// Enabled with `--features verisim` in Cargo.toml.
238+
#[cfg(feature = "verisim")]
239239
pub struct VeriSimDBProofStore {
240240
/// VeriSimDB HTTP client
241-
client: crate::verisimdb_bridge::VeriSimDBClient,
241+
client: crate::verisim_bridge::VeriSimDBClient,
242242

243243
/// In-memory cache (fast lookups + fallback)
244244
local_successes: RwLock<Vec<CachedProof>>,
@@ -248,15 +248,15 @@ pub struct VeriSimDBProofStore {
248248
connected: RwLock<bool>,
249249
}
250250

251-
#[cfg(feature = "verisimdb")]
251+
#[cfg(feature = "verisim")]
252252
impl VeriSimDBProofStore {
253253
/// Create a new VeriSimDB proof store.
254254
///
255255
/// # Arguments
256-
/// * `verisimdb_url` — Base URL of the VeriSimDB instance (e.g., "http://localhost:8081")
257-
pub fn new(verisimdb_url: &str) -> Self {
256+
/// * `verisim_url` — Base URL of the VeriSimDB instance (e.g., "http://localhost:8081")
257+
pub fn new(verisim_url: &str) -> Self {
258258
VeriSimDBProofStore {
259-
client: crate::verisimdb_bridge::VeriSimDBClient::new(verisimdb_url),
259+
client: crate::verisim_bridge::VeriSimDBClient::new(verisim_url),
260260
local_successes: RwLock::new(Vec::new()),
261261
local_failures: RwLock::new(Vec::new()),
262262
connected: RwLock::new(false),
@@ -327,7 +327,7 @@ impl VeriSimDBProofStore {
327327
}
328328
}
329329

330-
#[cfg(feature = "verisimdb")]
330+
#[cfg(feature = "verisim")]
331331
#[async_trait]
332332
impl ProofMemory for VeriSimDBProofStore {
333333
async fn store_success(
@@ -351,7 +351,7 @@ impl ProofMemory for VeriSimDBProofStore {
351351

352352
// Build octad and send to VeriSimDB (best-effort)
353353
if *self.connected.read().await {
354-
use crate::verisimdb_bridge::{ProofOctadBuilder, ProofStatus};
354+
use crate::verisim_bridge::{ProofOctadBuilder, ProofStatus};
355355

356356
// Fetch goal embedding from Julia inference service (best-effort)
357357
let embedding = self
@@ -398,7 +398,7 @@ impl ProofMemory for VeriSimDBProofStore {
398398

399399
// Store failure in VeriSimDB (best-effort)
400400
if *self.connected.read().await {
401-
use crate::verisimdb_bridge::{ProofOctadBuilder, ProofStatus};
401+
use crate::verisim_bridge::{ProofOctadBuilder, ProofStatus};
402402

403403
let prover = goal.preferred_prover.unwrap_or(ProverKind::Z3);
404404
let octad = ProofOctadBuilder::new(&goal.goal.id, &goal.goal, prover)

src/rust/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ pub mod integrity;
2020
pub mod llm; // Frontier LLM advisor (via BoJ Server)
2121
pub mod neural;
2222
pub mod parsers;
23-
#[cfg(feature = "verisimdb")]
23+
#[cfg(feature = "verisim")]
2424
pub mod proof_encoding; // CBOR encoding + proof identity hashing
2525
pub mod proof_search; // Chapel parallel proof search (optional feature)
2626
pub mod provers;
2727
pub mod verification;
28-
#[cfg(feature = "verisimdb")]
29-
pub mod verisimdb_bridge; // VeriSimDB 8-modality octad integration
30-
pub mod vql_ut; // VQL-UT: 10-level type-safe cross-prover query language
28+
#[cfg(feature = "verisim")]
29+
pub mod verisim_bridge; // VeriSimDB 8-modality octad integration
30+
pub mod vcl_ut; // VCL-UT: 10-level type-safe cross-prover query language
3131

3232
pub use agent::{AgentConfig, AgentCore};
3333
pub use core::{ProofState, Tactic, TacticResult, Term};
Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
22
// SPDX-License-Identifier: PMPL-1.0-or-later
33

4-
//! VQL-UT: Cross-Prover Query Language for ECHIDNA
4+
//! VCL-UT: Cross-Prover Query Language for ECHIDNA
55
//!
66
//! Typed query builder and executor for querying proof state across all 30
77
//! prover backends via VeriSimDB's octad storage. Implements a subset of
8-
//! VQL-UT with progressive type safety enforcement.
8+
//! VCL-UT with progressive type safety enforcement.
99
//!
1010
//! Query types:
1111
//! - `FindProof` — retrieve a specific proof by theorem + prover
@@ -26,10 +26,10 @@ use tracing::{debug, info};
2626

2727
use crate::provers::ProverKind;
2828

29-
#[cfg(feature = "verisimdb")]
29+
#[cfg(feature = "verisim")]
3030
use crate::proof_encoding;
31-
#[cfg(feature = "verisimdb")]
32-
use crate::verisimdb_bridge::{OctadPayload, VeriSimDBClient};
31+
#[cfg(feature = "verisim")]
32+
use crate::verisim_bridge::{OctadPayload, VeriSimDBClient};
3333

3434
// ═══════════════════════════════════════════════════════════════════════
3535
// Type Safety Levels
@@ -300,7 +300,7 @@ impl CrossProverQueryBuilder {
300300
// Level 7: Cardinality — must have a limit
301301
if level >= 7 && self.query.limit.is_none() {
302302
anyhow::bail!(
303-
"VQL-UT Level {} requires a cardinality limit (use .with_limit())",
303+
"VCL-UT Level {} requires a cardinality limit (use .with_limit())",
304304
level
305305
);
306306
}
@@ -311,7 +311,7 @@ impl CrossProverQueryBuilder {
311311
// Level 9: Temporal safety — must have a version constraint
312312
if level >= 9 && self.query.min_version.is_none() {
313313
anyhow::bail!(
314-
"VQL-UT Level {} requires a version constraint (use .with_min_version())",
314+
"VCL-UT Level {} requires a version constraint (use .with_min_version())",
315315
level
316316
);
317317
}
@@ -320,7 +320,7 @@ impl CrossProverQueryBuilder {
320320
// (enforced by VeriSimDB's provenance modality)
321321

322322
debug!(
323-
"VQL-UT query built: {:?} at level {} for {:?}",
323+
"VCL-UT query built: {:?} at level {} for {:?}",
324324
self.query.operation, level, self.query.theorem_name,
325325
);
326326

@@ -332,37 +332,37 @@ impl CrossProverQueryBuilder {
332332
// Query Executor
333333
// ═══════════════════════════════════════════════════════════════════════
334334

335-
/// Executes VQL-UT queries against VeriSimDB.
335+
/// Executes VCL-UT queries against VeriSimDB.
336336
///
337-
/// Uses the VeriSimDBClient from the verisimdb_bridge module when
338-
/// the `verisimdb` feature is enabled. Falls back to a no-op executor
337+
/// Uses the VeriSimDBClient from the verisim_bridge module when
338+
/// the `verisim` feature is enabled. Falls back to a no-op executor
339339
/// when VeriSimDB is not available.
340340
pub struct QueryExecutor {
341-
#[cfg(feature = "verisimdb")]
341+
#[cfg(feature = "verisim")]
342342
client: VeriSimDBClient,
343343

344-
#[cfg(not(feature = "verisimdb"))]
344+
#[cfg(not(feature = "verisim"))]
345345
_phantom: std::marker::PhantomData<()>,
346346
}
347347

348348
impl QueryExecutor {
349349
/// Create a new query executor.
350-
#[cfg(feature = "verisimdb")]
351-
pub fn new(verisimdb_url: &str) -> Self {
350+
#[cfg(feature = "verisim")]
351+
pub fn new(verisim_url: &str) -> Self {
352352
QueryExecutor {
353-
client: VeriSimDBClient::new(verisimdb_url),
353+
client: VeriSimDBClient::new(verisim_url),
354354
}
355355
}
356356

357357
/// Create a new query executor (no VeriSimDB — stub mode).
358-
#[cfg(not(feature = "verisimdb"))]
358+
#[cfg(not(feature = "verisim"))]
359359
pub fn new(_verisimdb_url: &str) -> Self {
360360
QueryExecutor {
361361
_phantom: std::marker::PhantomData,
362362
}
363363
}
364364

365-
/// Validate a query against TypeLL's VQL-UT 10-level type checker.
365+
/// Validate a query against TypeLL's VCL-UT 10-level type checker.
366366
///
367367
/// Calls the TypeLL server at localhost:7800 to verify that the query
368368
/// meets its declared safety level. Returns the verified level and any
@@ -383,7 +383,7 @@ impl QueryExecutor {
383383
.context("Failed to create HTTP client for TypeLL")?;
384384

385385
match client
386-
.post(format!("{}/api/v1/vql-ut/check", typell_url))
386+
.post(format!("{}/api/v1/vcl-ut/check", typell_url))
387387
.json(&check_body)
388388
.send()
389389
.await
@@ -409,11 +409,11 @@ impl QueryExecutor {
409409
.join("; ")
410410
})
411411
.unwrap_or_default();
412-
anyhow::bail!("TypeLL VQL-UT validation failed: {}", errors);
412+
anyhow::bail!("TypeLL VCL-UT validation failed: {}", errors);
413413
}
414414

415415
info!(
416-
"TypeLL verified VQL-UT level {}/10 for {:?}",
416+
"TypeLL verified VCL-UT level {}/10 for {:?}",
417417
max_level, query.operation,
418418
);
419419

@@ -459,7 +459,7 @@ impl QueryExecutor {
459459
/// execution. Falls back to local validation if TypeLL is unreachable.
460460
pub async fn execute(&self, query: &ProofQuery) -> Result<QueryResult> {
461461
info!(
462-
"Executing VQL-UT query: {:?} at level {:?}",
462+
"Executing VCL-UT query: {:?} at level {:?}",
463463
query.operation, query.level,
464464
);
465465

@@ -493,7 +493,7 @@ impl QueryExecutor {
493493
async fn execute_find_proof(&self, query: &ProofQuery) -> Result<QueryResult> {
494494
let _theorem = query.theorem_name.as_deref().unwrap_or("");
495495

496-
#[cfg(feature = "verisimdb")]
496+
#[cfg(feature = "verisim")]
497497
if let Some(prover) = query.prover {
498498
// Generate the octad key and look it up directly
499499
if let Some(ref goal_display) = query.goal_display {
@@ -529,7 +529,7 @@ impl QueryExecutor {
529529
let limit = query.limit.unwrap_or(10);
530530
let goal_display = query.goal_display.as_deref().unwrap_or("");
531531

532-
#[cfg(feature = "verisimdb")]
532+
#[cfg(feature = "verisim")]
533533
{
534534
// Request a goal embedding from the Julia inference service
535535
let embedding = self
@@ -582,7 +582,7 @@ impl QueryExecutor {
582582
let theorem = query.theorem_name.as_deref().unwrap_or("");
583583
let limit = query.limit.unwrap_or(100);
584584

585-
#[cfg(feature = "verisimdb")]
585+
#[cfg(feature = "verisim")]
586586
{
587587
let url = format!(
588588
"{}/api/v1/search/text?q={}&limit={}",
@@ -624,7 +624,7 @@ impl QueryExecutor {
624624
/// Get the provenance trace for a proof.
625625
/// Calls VeriSimDB GET /api/v1/octads/{key} and extracts provenance modality.
626626
async fn execute_provenance(&self, query: &ProofQuery) -> Result<QueryResult> {
627-
#[cfg(feature = "verisimdb")]
627+
#[cfg(feature = "verisim")]
628628
if let Some(ref theorem) = query.theorem_name {
629629
if let Some(ref goal_display) = query.goal_display {
630630
if let Some(prover) = query.prover {
@@ -668,7 +668,7 @@ impl QueryExecutor {
668668
async fn execute_dependency(&self, query: &ProofQuery) -> Result<QueryResult> {
669669
let limit = query.limit.unwrap_or(50);
670670

671-
#[cfg(feature = "verisimdb")]
671+
#[cfg(feature = "verisim")]
672672
if let Some(ref theorem) = query.theorem_name {
673673
if let Some(ref goal_display) = query.goal_display {
674674
if let Some(prover) = query.prover {
@@ -736,7 +736,7 @@ impl QueryExecutor {
736736

737737
/// Fetch a goal embedding from the Julia inference service (port 8090).
738738
/// Returns a 512-dim f32 vector, or empty vec on failure.
739-
#[cfg(feature = "verisimdb")]
739+
#[cfg(feature = "verisim")]
740740
async fn fetch_goal_embedding(&self, goal_display: &str) -> Result<Vec<f32>> {
741741
let julia_url = std::env::var("ECHIDNA_JULIA_URL")
742742
.unwrap_or_else(|_| "http://localhost:8090".to_string());
@@ -774,7 +774,7 @@ impl QueryExecutor {
774774
}
775775

776776
/// Convert a VeriSimDB search result JSON value to a QueryResultEntry.
777-
#[cfg(feature = "verisimdb")]
777+
#[cfg(feature = "verisim")]
778778
fn search_result_to_entry(value: &serde_json::Value) -> Option<QueryResultEntry> {
779779
Some(QueryResultEntry {
780780
key: value.get("key")?.as_str()?.to_string(),
@@ -852,7 +852,7 @@ mod urlencoding {
852852
}
853853

854854
/// Convert an OctadPayload to a QueryResultEntry.
855-
#[cfg(feature = "verisimdb")]
855+
#[cfg(feature = "verisim")]
856856
fn octad_to_entry(octad: &OctadPayload) -> QueryResultEntry {
857857
QueryResultEntry {
858858
key: octad.key.clone(),

0 commit comments

Comments
 (0)