Evolution Logica

We use our logic platform comprised of a logic language, Rubble, built on top of a battle-hardened process engine to perform deductive inference.

How Rubble works

Rubble is a logic platform; it's a logic language, a process engine and a rule and inference engine that you talk to over a REST API or via our web app.


The Rubble language is declarative rather than imperative. Instead of listing the explicit step-by-step instructions about how to execute a program, you describe the facts of the system and the rules that govern these facts. It allows you to express the logic of a system rather than be concerned with the flow of the program, it allows you in far fewer lines to express a complex system.

Process Engine

Rubble can control multiple persistent processes, each encapsulating a set of facts and rules where the facts express the current state of the process. Processes can communicate with one another which allows your program to be built up of logical units to architect one large logical system. This allows Rubble to scale across multiple cores and multiple nodes and allows you to build complex systems out of small building blocks or reuse building blocks that we provide.

Rule and Inference Engine

When you run Rubble, inferences are made based on the rules that you've established. Either, they run forward, which means that new facts are determined using the rules you've set. Or, they run backwards, you start with a query, expressed as a predicate containing one or more variables, and Rubble infers any answers that can be proved using the rules. Forward- and backward chaining may also be combined, for example by using a query in the condition part of a forward chaining rule, or by using forward chaining inferences when proving a query. This can be used to establish complex rule-based systems, that can be proved and queried. For instance, a security policy that establishes which user can access what resource.

Get ahold of rubble today!

What Rubble is good for

system icon

Rule-based systems

Establish the rules that govern a system, and the Rubble platform will govern it for you — everything from validating input data, to managing business processes, to enforcing compliance rules.

logic icon

Provable logic

Rubble code can be proved correct by using a formal mathematical method, SLD-resolution with sound negation-as-failure and unit propagation. In fact, Rubble rule execution is nothing other than an automated proof that uses this method.

inference icon

Deductive inference

Rubble is exceptional at provisioning a black box to provide deductive inference. Feed in a query and Rubble can deduce an answer.

Rubble and security

We strongly believe that logic languages could prove invaluable in information security.

Pure Logic

Specify policies in logic statements and use deduction to resolve all possible rules in your security policy to check that it is sound.

Orchestrate the implementation

Implement policies by sending configuration to target devices. Rubble has a command and control program called "Hermes" where commands can be issued as the result of a logic program.

Sentinel processes

Keep systems secure by putting formal logic in the loop. "Hermes" includes a sentinel program that is able to relay the state of a system back to the Rubble process ensuring that the system meets the logic of the security policy.