x,y. x-y<k-1 y2x 0y n. yn n2x x<(n+1)2
x,y. x-y<k y2x 0y n. yn n2x x<(n+1)2
Integer Square Root ProblemInteger Square Root Problem Part I: Initialize the InductionPart I: Initialize the Induction
x.y. y2x x<(y+1)2
k,x,y. x-y<k y2x 0y n. yn n2x x<(n+1)2
x,y. x-y<0 y2x 0y n. yn n2x x<(n+1)2
Base Case
Basic Specification Introduce auxiliary variable to force output induction Perform induction on k Base Case holds trivially (x-y<0 y2x is contradictory) Step Case Formula needs normalization
x,y. x-y<k-1 (x<y2) (y<0) n. (n<y) (x<n2) x<(n+1)2
x,y. x-y<k (x<y2) (y<0) n. (n<y) (x<n2) x<(n+1)2
Step Case
x,y. x-y<k-1 (x<y2) (y<0) n. (n<y) (x<n2) x<(n+1)2
x,y. x-y<k (x<y2) (y<0) n. (n<y) (x<n2) x<(n+1)2F
T
F
F x,y. x-y<k (x<y2) (y<0) n. (n<y) (x<n2) x<(n+1)2
T x,y. x-y<k-1 (x<y2) (y<0) n. (n<y) (x<n2) x<(n+1)2
T F
X-Y<k (X<Y2) (Y<0)
T n. (n<Y) (X<n2) X<(n+1)2
x-y<k (x<y2) (y<0)
F n. (n<y) (x<n2) x<(n+1)2
F
T F
TTF
Tn. (n<Y) (X<n2) X<(n+1)2
X-Y<k F (X<Y2) F (Y<0)
x-y<k T (x<y2) T (y<0)
Fn. (n<y) (x<n2) x<(n+1)2
TT
F
F
(n<Y) T (X<n2) T X<(n+1)2
(N<y)
F (x<N2)
F x<(N+1)2 (n<Y) T (X<n2) T X<(n+1)2
(N<y)
F (x<N2)
F x<(N+1)2
X-Y<k F (X<Y2) F (Y<0)
x-y<k T (x<y2) T (y<0)
F FF
F
F
FT T T
T T T
Integer Square Root ProblemInteger Square Root Problem Part II: Creating The MatrixPart II: Creating The Matrix
T(n<Y) T(X<n2) X<T(n+1)2
X-Y<Fk
F(X<Y2) F(Y<0)
x-y<Tk T(x<y2) T(y<0)
F(N<y)
F(x<N2)
x<F(N+1)2 T(n<Y) T(X<n2) X<T(n+1)2
X-Y<Fk
F(X<Y2) F(Y<0)
x-y<Tk T(x<y2) T(y<0)
F(N<y)
F(x<N2)
x<F(N+1)2
F
T
T
T
T
F
F F n<FY X<Fn2 X<T(n+1)2
X-Y<Fk
X<TY2
Y<T0
x-y<Tk x<Fy2 y<F0
N<Ty
x<TN2
x<F(N+1)2
x <T (N+1)2
X-Y <F k-1
X <T Y2
Y <T 0
x-y <T k x <F y2 y <F 0
N <T y
x <T N2
n <F Y X <F n2 X <F (n+1)2
Integer Square Root ProblemInteger Square Root Problem Part III: Proof along orthogonal ConnectionsPart III: Proof along orthogonal Connections
x<F (y+1)2U <F (V+1)2
Rippling / Reverse Rippling
Integer Square Root ProblemInteger Square Root Problem
X-Y <F k-1
x-y <T k
= {X\x, Y\y+1}x < (y+1)2 x < y2 invalid
X <T Y2
Arithmetic Decision Procedure Generalize to Lemma = { X\x, Y\y+1, U\x, V\y }
x <F y2
Add ConstraintArithmetic Decision Procedure
Y <T 0
y <F 0
Unify = { X\x, Y\y+1, U\x, V\y, N\n }
X <F (n+1)2
x <T (N+1)2
Instantiated terms are equal
X <F n2
x <T N2
Arithmetic Decision Procedure
n <F Y
N <T y
First Subproof CompleteFirst Subproof Complete
Part III: Proof along orthogonal ConnectionsPart III: Proof along orthogonal Connections
X-Y <F k-1
X <T Y2
Y <T 0
x-y <T k y <F 0
n <F Y X <F n2 X <F (n+1)2
Integer Square Root ProblemInteger Square Root Problem
U <F (V+1)2
U <T (V+1)2
= {U\x, V\y }Unify = {U\x, V\y, N\y }
U <T (V+1)2
x <T (N+1)2
Instantiated atoms are equal
x <F y2 x <T N2
Arithmetic Decision Procedure
N <T y
= { X1\x, Y1\y+1, N1\n, U\x, V\y, N2\y }
Second Subproof CompleteSecond Subproof CompleteProof CompleteProof Complete
Part IV:Proof for the Other ConstraintPart IV:Proof for the Other Constraint
x,y. x-y<k-1 y2x 0y n. yn n2x x<(n+1)2
x,y. x-y<k y2x 0y n. yn n2x x<(n+1)2 x,y. x-y<k-1 (x<y2) (y<0) n. (n<y) (x<n2) x<(n+1)2
x,y. x-y<k (x<y2) (y<0) n. (n<y) (x<n2) x<(n+1)2
Integer Square Root ProblemInteger Square Root Problem Part I: Generating the Step Case FormulaPart I: Generating the Step Case Formula
x <T (N+1)2
X-Y <F k-1
X <T Y2
Y <T 0
x-y <T k x <F y2 y <F 0
N <T y
x <T N2
n <F Y X <F n2 X <F (n+1)2
Integer Square Root ProblemInteger Square Root Problem
Testing the animation