-- Programmed by Jedidiah Barber -- Licensed under the Sunset License v1.0 -- See license.txt for further details with Ada.Text_IO, Kompsos.Math, Kompsos.Pretty_Print; procedure Boolnum is package TIO renames Ada.Text_IO; package BKomp is new Kompsos (Boolean); use BKomp; package Math is new BKomp.Math (False, True); package Printer is new BKomp.Pretty_Print (Boolean'Image); Relation : Goal := Empty_Goal; Four : constant Term := Math.Build (4); Five : constant Term := Math.Build (5); Nine : constant Term := Math.Build (9); Sum : constant Term := Relation.Fresh; Product : constant Term := Relation.Fresh; Result : State; begin TIO.Put_Line ("Demonstration of arithmetic using boolean zero and one elements."); TIO.New_Line; Math.Add (Relation, Five & Nine & Sum); Math.Multiply (Relation, Four & Five & Product); Result := Relation.Run; TIO.Put_Line (Printer.Image (Five) & " + " & Printer.Image (Nine) & " = " & Printer.Image (Sum.Resolve (Result))); TIO.Put_Line (Printer.Image (Four) & " * " & Printer.Image (Five) & " = " & Printer.Image (Product.Resolve (Result))); end Boolnum;