Skip to content

/acr-vault/01-foundations/asl-specification-v10
ASL-SPECIFICATION-v1.0

Ada Symbol Language (ASL) v1.0 Specification

Section titled “Ada Symbol Language (ASL) 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)


ASL (Ada Symbol 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 ASL 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 ASL 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

ASL 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.


ASL 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 ↳ ∅

ASL and SIF are complementary specifications:

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

ASL → 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 → ASL:

# SIF: {"confidence": 0.72, "importance": 0.85, "type": "hypothesis"}
# ASL: ★◕hypothesis
def confidence_to_certainty(confidence: float) -> str:
"""Convert SIF confidence (0-1) to ASL 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 ASL attention symbol."""
if importance >= 0.75: return ''
elif importance >= 0.60: return '' # THE THRESHOLD
elif importance >= 0.40: return ''
else: return ''

ASL 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]

ASL 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 + ASL (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 ASL 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 ASL renderer must:

  1. Convert ASL to natural language (expansion)
  2. Convert natural language to ASL (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.

ASL 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