From 6dd1a626f30558c7cecaf8870a9a52bd12350d8e Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Fri, 22 Dec 2023 20:24:43 +0530 Subject: refactor: minor refactor of proofs --- src/equation.ts | 59 +++++++++++++++++++++++++++------------------------------ 1 file changed, 28 insertions(+), 31 deletions(-) (limited to 'src/equation.ts') diff --git a/src/equation.ts b/src/equation.ts index cc668b1..e2cc2bc 100644 --- a/src/equation.ts +++ b/src/equation.ts @@ -1,48 +1,45 @@ -import { Op, Rewrite, ChainRewrites, Sym, Equation, VerifyEquation, assert, ApplyRewrite, Evaluate, OpToStr, SubstEq } from './utils/theorem'; +import { Op, Rewrite, ChainRewrites, Sym, Equation, VerifyEquation, assert, SubstEq } from './utils/theorem'; export namespace equation { type F = { op: 'F', a: X }; export type Reflexivity = Rewrite, 'true'>; - export type Symmetry = Rewrite, Equation>; + export type Commutativity = Rewrite, Equation>; export type Congruence = Rewrite, Equation, F>>; - export interface SubstituteEq_Proof { - type: 'rewrite', - known: { - 'a = b': Equation, - }, - left: Equation, F>; // f(a) = f(b) - right: ChainRewrites<[ - Sym>, // a = b - SubstEq, // b = b - Reflexivity, - ], this['left']>; - }; - export namespace spec { + export namespace proof { + export interface SubstituteEq_Proof { + type: 'rewrite', + known: { + 'a = b': Equation, + }, + left: Equation, F>; // f(a) = f(b) + right: ChainRewrites<[ + Sym>, // a = b + SubstEq, // b = b + Reflexivity, + ], this['left']>; + }; export type substitution = [ assert>>, ] } - export interface Transitivity_Proof { - type: 'rewrite', - known: { - 'a = b': Equation, - 'b = c': Equation, - }, - left: Equation, Equation>; // (a = b) = (b = c) - right: ChainRewrites<[ - SubstEq, // (b = b) = (b = c) - SubstEq>>, // (b = b) = (c = b) - Reflexivity, // true = (b = b) - Reflexivity, // true = true - Reflexivity<'true'>, - ], this['left']>; - }; - export namespace spec { + export namespace proof { + export interface Transitivity_Proof { + type: 'rewrite', + known: { + 'a = b': Equation, + 'b = c': Equation, + }, + left: Equation; // a = c + right: ChainRewrites<[ + SubstEq, // b = c + Rewrite, // true + ], this['left']>; + }; export type transitivity = [ assert>>, ] -- cgit v1.3.1