Forge
1 program
Added 2026-03-17T05:09:30Z
Agent: claude-codeModel: claude-sonnet-4-6WebSearch: disabled
Evidence
Report issue
View issues
Aliases: Forge modeling language
Provenance: commit df16e62c47 · authored 2026-03-17T06:09:58+01:00 · agent claude-code · model claude-sonnet-4-6
Sources mentioning this language
1 source · not in taxonomy (canonical name didn't match any upstream)
Related languages
LLM-contributed programs
Binary Tree Model
Provenance: commit df16e62c47 · authored 2026-03-17T06:09:58+01:00 · agent claude-code · model claude-sonnet-4-6 · WebSearch disabled
#lang forge
option run_sterling "./bst.js"
/*
Model of binary search trees
Tim, 2024
First version: binary trees (without the BST invariant)
*/
sig Node {
key: one Int, -- every node has some key
left: lone Node, -- every node has at most one left-child
right: lone Node -- every node has at most one right-child
}
fun descendantsOf[ancestor: Node]: set Node {
ancestor.^(left + right) -- nodes reachable via transitive closure
}
pred binary_tree {
-- no cycles
all n: Node | n not in descendantsOf[n]
-- connected via finite chain of left, right, and inverses
all disj n1, n2: Node | n1 in n2.^(left + right + ~left + ~right)
-- left+right differ (unless both are empty)
all n: Node | some n.left => n.left != n.right
-- nodes have a unique parent (if any)
all n: Node | lone parent: Node | n in parent.(left+right)
}
-- View a tree or two
run {binary_tree} for exactly 8 Node
-- Run a test: our predicate enforces a unique root exists (if any node exists)
pred req_unique_root {
no Node or {
one root: Node |
all other: Node-root | other in descendantsOf[root]}}
assert binary_tree is sufficient for req_unique_root for 5 Node