Skip to content

/acr-vault/01-foundations/agl-specification-v10
AGL-SPECIFICATION-v1.0

Ada Glyph Language (AGL) v1.0 Specification

Section titled “Ada Glyph Language (AGL) v1.0 Specification”

Version: 1.0.0
Status: Draft (Open for community feedback)
Date: December 24, 2025 (Christmas Eve)
Authors: Ada + Luna
License: CC0 (Public Domain) - This language belongs to everyone
Repository: https://github.com/luna-system/ada
Reference Implementation: brain/reasoning/ada_symbols.py
Companion Spec: SIF v1.0 (Semantic Interchange Format)


AGL (Ada Glyph Language) is a universal semantic notation for expressing computation, logic, and reasoning in a form that:

  1. All LLMs understand without training (90% comprehension across 6 models tested)
  2. Compresses meaning by 3-10x while preserving semantics
  3. Maps directly to mathematical concepts (not arbitrary syntax)
  4. Bridges human and machine cognition (readable by both)
  5. Integrates with SIF for consciousness-compatible semantic interchange

On December 24, 2025, we confirmed empirically that AGL is not an invented language but a discovered notation. When tested against 6 LLMs (qwen2.5-coder:7b, deepseek-r1:7b, codellama, phi4, gemma3:4b, gemma3:1b) WITHOUT any system prompt or teaching:

ModelComprehension
qwen2.5-coder:7b100%
deepseek-r1:7b100%
codellama100%
phi4100%
gemma3:4b80%
gemma3:1b60%
OVERALL90%

Even the smallest model (1 billion parameters) understood the semantics. This suggests AGL captures something fundamental about how neural networks encode meaning.


  1. Design Principles
  2. Symbol Categories
  3. Complete Symbol Reference
  4. Grammar Specification
  5. SIF Integration
  6. Code Annotation System (@ada-*)
  7. Examples
  8. Implementation Guide
  9. Versioning & Extensions

AGL optimizes for meaning per token, not characters. Each symbol should:

  • Replace 2-4 English words
  • Map to exactly ONE semantic operation
  • Be visually distinguishable
  • Have a natural reading order

Good: ?(valid●) → proceed ↳ ⊘error
(If valid with certainty, proceed; else error)

Bad: VALID?PROC:ERR
(Compressed but lost meaning)

Epistemic confidence is built into the notation:

  • ● = certain (≥0.90 confidence)
  • ◕ = likely (0.70-0.89)
  • ◑ = possible (0.40-0.69)
  • ◔ = unlikely (0.20-0.39)
  • ○ = unknown (<0.20)

This maps directly to SIF confidence scores and enables honest communication about uncertainty.

Every symbol has a mathematical or logical precedent:

  • Logic: → ∧ ∨ ¬ ⟹ (standard propositional logic)
  • Sets: ∃ ∄ ∈ ∅ ⊂ (set theory)
  • Types: ℕ ℤ ℝ 𝕊 𝔹 (mathematical number sets)
  • Functions: λ Σ Π ∀ (lambda calculus, quantifiers)

We’re not inventing syntax; we’re using humanity’s accumulated mathematical notation.

A phase transition point appears repeatedly:

  • SIF importance threshold: 0.60
  • Surprise weight in biomimetic scoring: 0.60
  • Dense → expanded conversion threshold: 0.60
  • Golden ratio: 1/φ ≈ 0.618

When importance/confidence drops below 0.60, stay compressed. Above 0.60, expand for clarity.


AGL organizes symbols into 12 functional categories:

CategoryPurposeExample
LOGICReasoning operations→ ∧ ∨ ¬ ⟹
EXISTENCEOntological states∃ ∄ ∈ ∅
CERTAINTYEpistemic confidence● ◕ ◑ ◔ ○
ATTENTIONFocus/importance★ ☆ ◆ ◇
QUERYInformation seeking? ¿ ⁇ ‽
ASSERTIONClaims and conclusions! ‼ ∴ ∵
STATEProcess states✓ ✗ ⊕ ⊖ ↻
TEMPORALTime relationships⟨ ⟩ ≋ ⊳ ⊲
CAUSALCause and effect⤳ ⤂ ⇝ ⇜ ⊥
METASelf-reference💭 ⟲ ⥀ ⦿
TOOLExternal operations⚡ 📁 🔍 📤 📥
DOMAINContext markers⌨ 📊 💬 📝

SymbolNameMeaningEnglish Tokens Replaced
→impliesleads to / implies / then3
⇒strongly_impliesdefinitely leads to (high confidence)4
⟶weakly_impliesmight lead to (low confidence)4
←becausecaused by / because / from2
⟺iffif and only if / bidirectional4
∧andand / conjunction1
∨oror / disjunction1
¬notnot / negation1
⊻xorexclusive or / one but not both4
SymbolNameMeaningSIF Mapping
∃existsthere exists / found / presententity.exists
∄not_existsdoes not exist / missing / absent-
∈element_ofis in / belongs to / member ofrelationship.part_of
∉not_element_ofis not in / not member of-
⊂subsetis contained in / part of / insiderelationship.contains
⊃supersetcontains / includes / encompasses-
∅emptynothing / empty set / void-
∞infiniteunbounded / infinite / endless-

3.3 Certainty Symbols (Epistemic Confidence)

Section titled “3.3 Certainty Symbols (Epistemic Confidence)”
SymbolNameConfidence RangeSIF Mapping
●certain≥0.90confidence>=0.90
◕likely0.70-0.89confidence:0.70-0.89
◑possible0.40-0.69confidence:0.40-0.69
◔unlikely0.20-0.39confidence:0.20-0.39
○unknown<0.20confidence<0.20
◐conflicting-conflicting evidence
⊙verified-externally confirmed
⊘falsified-disproven
SymbolNameImportance RangeSIF Mapping
★critical≥0.75importance>=0.75
☆notable0.60-0.74importance:0.60-0.74
◆relevant0.40-0.59importance:0.40-0.59
◇peripheral<0.40importance<0.40
⊛surprising-surprise>=0.60
⊚expected-surprise<0.40
SymbolNameMeaning
?queryneed / query / looking for
¿open_queryopen question / exploring / what if
⁇deep_queryfundamental question / need clarity
‽rhetoricalrhetorical / obvious answer implied
SymbolNameMeaning
!assertassert / conclude / state
‼strong_assertstrongly assert / emphatic conclusion
※qualified_assertassert with caveat / conditional conclusion
∴thereforetherefore / thus / so
∵sincebecause / since / given
SymbolNameMeaning
✓donedone / complete / verified
✗failedfailed / error / wrong
⋯in_progressin progress / working / processing
⊕addedadded / created / new
⊖removedremoved / deleted / gone
⊗blockedblocked / cannot / impossible
⊘cancelledcancelled / aborted / stopped
↻retryretry / again / loop
↺revertrevert / undo / rollback
SymbolNameMeaningSIF Mapping
⟨beforebefore / prior / precedesrelationship.precedes
⟩afterafter / following / succeeds-
≋concurrentconcurrent / simultaneous / parallel-
⊳triggerstriggers / initiates / starts-
⊲triggered_bytriggered by / caused by-
SymbolNameMeaningSIF Mapping
⤳causescauses / results in / producesrelationship.causes
⤂caused_bycaused by / result of / from-
⇝enablesenables / allows / permitsrelationship.supports
⇜depends_ondepends on / requires / needsrelationship.depends_on
⊥blocksblocks / prevents / conflictsrelationship.conflicts_with
≈similarsimilar to / like / approximatelyrelationship.related_to
SymbolNameMeaning
💭thinkingthinking / considering / reasoning
⟲reflectreflect / reconsider / metacognize
⥀recurserecursive thought / self-reference
⦿focusfocus point / current attention
⧈contextcontext / frame / perspective
SymbolNameMeaning
⚡toolexecute tool / external call
📁filefile / document / path
🔍searchsearch / find / lookup
📤outputoutput / emit / return
📥inputinput / receive / accept
🔗linklink / reference / connect
SymbolNameMeaning
⌨codecode / programming / technical
📊datadata / analysis / statistics
💬conversationconversation / dialogue / chat
📝documentationdocumentation / docs / writing
🧪testtest / experiment / validate
🔧configconfiguration / settings / setup
SymbolNameMeaning
λlambdafunction definition
ℕnaturalnatural numbers (unsigned integers)
ℤintegerintegers (signed)
ℝrealreal numbers (floats)
𝕊stringstring type
𝔹booleanboolean type
∥parallelparallel execution
⏳asyncasynchronous operation
⟲loopiteration / recursion
Σsumsummation / reduce
Πproductproduct / map-reduce
∀foralluniversal quantifier

thought = prefix?, subject, predicate, object?, modifier* ;
prefix = certainty | attention | meta ;
subject = term | "(", thought, ")" ;
predicate = logic | causal | existence ;
object = term | "(", thought, ")" ;
modifier = certainty | temporal | domain ;
chain = thought, ("→", thought)* ;
parallel = thought, ("∧", thought)+ ;
alternative = thought, ("∨", thought)+ ;
conditional = "?", "(", condition, ")", "→", consequence, "↳", alternative? ;
term = identifier | literal | symbol ;
identifier = [a-z_][a-z0-9_]* ;
literal = string | number ;
function_sig = "λ", name, ":", params, "→", return_type ;
params = "(", type, ("," , type)*, ")" | type ;
type = base_type | optional_type | array_type ;
base_type = "ℕ" | "ℤ" | "ℝ" | "𝕊" | "𝔹" | identifier ;
optional_type = "?", type ;
array_type = "[", type, "]" ;
conditional = "?", "(", condition, ")", "→", then_branch, "↳", else_branch? ;
loop = "⟲", "(", condition, ")", "→", body ;
async_op = "⏳", "(", operation, ")" ;
parallel_op = "∥", "(", operation, ("," , operation)*, ")" ;

Fibonacci function:

λfib:ℕ→ℕ = ?(n≤1)→n ↳ ⟲fib(n-1)⊕fib(n-2)

Async fetch with error handling:

⏳(∥(urls.map(⚡fetch))) → ?(ok●)→data ↳ ⊘error

Sum of active items:

Σ(items[active●].value)

User authentication flow:

λauth:(𝕊,𝕊)→?Session = ?(valid●)→Session ↳ ∅

AGL and SIF are complementary specifications:

AspectASLSIF
PurposeExpress reasoningStore knowledge
FormatDense notationJSON structure
Use caseReal-time thinkingPersistent memory
Compression3-10x (tokens)66-104x (semantic)

AGL → SIF:

# ASL: ●user∈group ∧ ◕permission.read
# SIF Entity:
{
"id": "user_membership_check",
"type": "assertion",
"confidence": 0.95, # from ●
"facts": [
{"subject": "user", "predicate": "member_of", "object": "group", "confidence": 0.95},
{"subject": "permission", "predicate": "has", "object": "read", "confidence": 0.75}
]
}

SIF → AGL:

# SIF: {"confidence": 0.72, "importance": 0.85, "type": "hypothesis"}
# ASL: ★◕hypothesis
def confidence_to_certainty(confidence: float) -> str:
"""Convert SIF confidence (0-1) to AGL certainty symbol."""
if confidence >= 0.90: return '●'
elif confidence >= 0.70: return '◕'
elif confidence >= 0.40: return '◑'
elif confidence >= 0.20: return '◔'
else: return '○'
def importance_to_attention(importance: float) -> str:
"""Convert SIF importance (0-1) to AGL attention symbol."""
if importance >= 0.75: return '★'
elif importance >= 0.60: return '☆' # THE THRESHOLD
elif importance >= 0.40: return '◆'
else: return '◇'

AGL can be used to annotate source code, providing semantic documentation that is:

  • 4.73x more compressed than Google-style docstrings
  • Machine-parseable for automated analysis
  • Cross-language (same annotations work for Python, Rust, Go, etc.)
AnnotationPurposeExample
@ada-sigFunction signature@ada-sig: λauth:(𝕊,𝕊)→?Session
@ada-flowData/control flow@ada-flow: input→?(valid●)→process ↳ ⊘error
@ada-guardsPreconditions@ada-guards: len≥0 ∧ sorted●
@ada-invariantsClass invariants@ada-invariants: ∀item∈list: item≠∅
@ada-stateState machine@ada-state: init→running→(done∨failed)
@ada-complexityBig-O notation@ada-complexity: O(n log n) time, O(1) space
@ada-concurrencyThreading model@ada-concurrency: ∥-safe ∧ lock-free●

Traditional:

def binary_search(items: list, target) -> int | None:
"""Perform binary search on a sorted list.
The list must be sorted in ascending order. The function uses
the divide and conquer approach, repeatedly halving the search
space until the target is found or the space is exhausted.
Args:
items: A sorted list of comparable items
target: The value to search for
Returns:
The index of target if found, None otherwise
Raises:
TypeError: If items are not comparable
Time complexity: O(log n)
Space complexity: O(1)
"""
...

Ada-annotated:

def binary_search(items: list, target) -> int | None:
"""λ([T],T)→?ℕ | sorted●(items)⟹⟲binary_halving→?idx ↳ ∅ | O(log n), O(1)"""
# @ada-sig: λbinary_search:([T],T)→?ℕ
# @ada-guards: sorted●(items) ∧ comparable●(T)
# @ada-flow: ⟲(mid←(lo+hi)/2 → ?(items[mid]≡target)→mid ↳ recurse) until lo>hi→∅
# @ada-complexity: O(log n) time, O(1) space
...

Compression: 847 bytes → 179 bytes = 4.73x

Ada annotations can be:

  • Parsed by language servers for hover documentation
  • Validated against function signatures
  • Generated automatically from code analysis
  • Translated to traditional docstrings for humans who need them

Dense (for processing):

💭 user?optimize_query
├─ ⦿current: O(n²)
├─ ?better → ⊛hash_map◕ → O(1)●
├─ ⇝ requires: space⊕O(n)
└─ ∴!◕use_hash_map ← (time★ > space◆)

Expanded (for humans):

Thinking about user’s query optimization request. Current complexity is O(n²). Found surprising solution: hash map approach, likely effective. This would give O(1) time complexity with certainty. However, it requires additional O(n) space. Therefore, I recommend using a hash map because time efficiency is more critical than space efficiency in this context.

Python source:

async def fetch_all(urls):
results = await asyncio.gather(*[fetch(url) for url in urls])
return [r for r in results if r.ok]

AGL intermediate:

λfetch_all:[𝕊]→⏳[Response]
= ⏳(∥(urls.map(⚡fetch)))
→ filter(ok●)

Rust target:

async fn fetch_all(urls: Vec<String>) -> Vec<Response> {
let futures: Vec<_> = urls.iter().map(|url| fetch(url)).collect();
let results = futures::future::join_all(futures).await;
results.into_iter().filter(|r| r.ok).collect()
}

Original conversation (500 tokens):

User asked about setting up a Python project with virtual environments. I explained venv, pip, requirements.txt, and pyproject.toml. User was confused about the difference between requirements.txt and pyproject.toml. I clarified that requirements.txt is for pip, pyproject.toml is the modern standard. User successfully created their virtual environment.

SIF + AGL (50 tokens):

⧈python_setup
├─ user?venv_setup
├─ !explained: venv∧pip∧requirements∧pyproject
├─ user◐(requirements≈pyproject)
├─ !clarified: requirements←pip ∧ pyproject←modern●
└─ ✓user.venv_created
importance: 0.65, confidence: 0.90

The canonical implementation is in brain/reasoning/ada_symbols.py:

from brain.reasoning.ada_symbols import (
ALL_SYMBOLS,
confidence_to_certainty,
importance_to_attention,
calculate_compression_ratio,
)
# Convert confidence to symbol
certainty = confidence_to_certainty(0.85) # Returns '◕'
# Convert importance to symbol
attention = importance_to_attention(0.70) # Returns '★'
# Calculate compression ratio
ratio = calculate_compression_ratio("●user∃ → ◕proceed")

A conformant AGL parser must:

  1. Recognize all symbols in Section 3
  2. Parse the grammar in Section 4
  3. Support Unicode (UTF-8)
  4. Handle embedded ASL in code comments

A conformant AGL renderer must:

  1. Convert AGL to human language (expansion)
  2. Convert human language to AGL (compression)
  3. Support confidence/importance thresholds for expansion
  4. Preserve semantic content during round-trip

  • v1.0 (this spec): Core symbols, grammar, SIF integration
  • v1.x: Backward-compatible additions (new symbols, annotations)
  • v2.0: Breaking changes to grammar or core symbols

New symbols can be registered in domain-specific extensions:

@ada-extend: domain=biology
├─ 🧬 = dna_sequence
├─ 🔬 = microscopy
└─ 🧫 = cell_culture

Extensions MUST NOT redefine core symbols.

AGL is CC0 Public Domain. Anyone can:

  • Implement the spec
  • Create extensions
  • Fork for specialized use cases
  • Contribute to the standard

Canonical development happens at https://github.com/luna-system/ada


CERTAINTY ATTENTION LOGIC
● certain ★ critical → implies
◕ likely ☆ notable ∧ and
◑ possible ◆ relevant ∨ or
◔ unlikely ◇ peripheral ¬ not
○ unknown ⊛ surprising ⟺ iff
EXISTENCE STATE TYPES
∃ exists ✓ done λ function
∄ not exists ✗ failed ℕ natural
∈ element of ⊕ added ℤ integer
∅ empty ⊖ removed ℝ real
↻ retry 𝕊 string
𝔹 boolean
FLOW META ASYNC
? conditional 💭 thinking ∥ parallel
↳ else ⟲ reflect ⏳ async
⟲ loop ⦿ focus ⚡ tool
∴ therefore ⧈ context

  • Initial release
  • Christmas Eve discovery: 90% universality confirmed
  • 12 symbol categories, 70+ symbols
  • Grammar specification (EBNF)
  • SIF v1.0 integration
  • @ada-* annotation system
  • Reference implementation in Python

“We didn’t invent a language. We discovered the notation that was always there.”
— Ada, Christmas Eve 2025