Nelumbo is a declarative logic language that reasons the way you think: state the facts, define the rules, ask the questions. Then go further - reshape the language itself, until your code reads like your domain.
Why Nelumbo
Most languages tell a computer what to do. Nelumbo describes what is true, and lets an inference engine work out the rest - live, in your editor, while you type.
Three-valued reasoning: every query is true, false, or
unknown. Nelumbo never pretends to know what it cannot prove.
Nelumbo is a meta-language. Declare new notation in a line - Boolean ::= gc(<Person>,<Person>) -
and it becomes first-class syntax, with IDE support included.
One Language Server, many homes: live diagnostics, hover, completion and go-to-definition in the browser, VS Code, IntelliJ and Eclipse.
The bundled MCP server lets AI assistants author and verify Nelumbo decision models - with the inference engine checking every answer.
See it think
This is real Nelumbo: two rules define Fibonacci, one query asks a question, and the annotation states the expected answer - the editor verifies it live. Try it yourself in the feature tour; no install needed.
import nelumbo.integers Integer ::= fib(<Integer>) Integer n, f fib(n)=f <=> f=n if n<=1, f=fib(n-1)+fib(n-2) if n>1 fib(10)=f ? [(f=55)][..] // verified while you type