$SPAD/src/input patmatch.input

Timothy Daly December 3, 2016

Abstract

Contents

2

1 License

— license —

--Copyright The Numerical Algorithms Group Limited 1991.

———-

— * —

)set break resume
)spool patmatch.output
)set message test on
)set message auto off
)clear all
--S 1 of 22
p := 3 * n ** 2 + 1
--R
--R
--R          2
--R   (1)  3n  + 1
--R                                                    Type: Polynomial(Integer)
--E 1
--S 2 of 22
q := 3 * n% ** 2 + 1
--R
--R
--R           2
--R   (2)  3n%  + 1
--R                                                    Type: Polynomial(Integer)
--E 2
--S 3 of 22
a := roman 49
--R
--R
--R   (3)  XLIX
--R                                                           Type: RomanNumeral
--E 3
--S 4 of 22
b := roman IV
--R
--R
--R   (4)  IV
--R                                                           Type: RomanNumeral
--E 4
--S 5 of 22

c := a - 1
--R
--R
--R   (5)  XLVIII
--R                                                           Type: RomanNumeral
--E 5
--S 6 of 22
Is(a, p)
--R
--R
--R   (6)  [n= IV]
--R                               Type: List(Equation(Polynomial(RomanNumeral)))
--E 6
--S 7 of 22
Is(a, q)
--R
--R
--R   (7)  [n%= IV]
--R                               Type: List(Equation(Polynomial(RomanNumeral)))
--E 7
--S 8 of 22
Is(b, p)
--R
--R
--R   (8)  []
--R                               Type: List(Equation(Polynomial(RomanNumeral)))
--E 8
--S 9 of 22
Is(b, q)
--R
--R
--R   (9)  []
--R                               Type: List(Equation(Polynomial(RomanNumeral)))
--E 9
--S 10 of 22
Is(c, p)
--R
--R
--R   (10)  []
--R                               Type: List(Equation(Polynomial(RomanNumeral)))
--E 10
--S 11 of 22
Is(c, q)
--R

--R
--R   (11)  []
--R                               Type: List(Equation(Polynomial(RomanNumeral)))
--E 11
--S 12 of 22
ab := a / b
--R
--R
--R         XLIX
--R   (12)  ----
--R          IV
--R                                                 Type: Fraction(RomanNumeral)
--E 12
--S 13 of 22
pq := p / q
--R
--R
--R            2
--R          3n  + 1
--R   (13)  --------
--R            2
--R         3n%  + 1
--R                                          Type: Fraction(Polynomial(Integer))
--E 13
--S 14 of 22
Is(ab, pq)
--R
--R
--R   (14)  []
--R                     Type: List(Equation(Polynomial(Fraction(RomanNumeral))))
--E 14
--S 15 of 22
ab := rational ab
--R
--R
--R         49
--R   (15)  --
--R          4
--R                                                      Type: Fraction(Integer)
--E 15
--S 16 of 22
a  := rational a
--R
--R
--R   (16)  49

--R                                                      Type: Fraction(Integer)
--E 16
--Is([ab, a], [pq, _:l, p])
--Is([ab, a], [pq, _:l%, p])
--Is([ab, 1, 2, a], [pq, _:l, p])
-- foo?(x:LIST FRAC INT):BOOLEAN == odd? _# x
-- qq := suchThat(_:l%, foo?)
-- Is([ab, 1, 2, a], [pq, qq, p])
-- Is([ab, 1, 2, 3, a], [pq, qq, p])
-- creating streams using pattern matching
-- want the streams of all primes of the form m**2+1
--S 17 of 22
bar?(n:INT):BOOLEAN == prime? n and is?(n, m**2 + 1)
--R
--R   Function declaration bar? : Integer -> Boolean has been added to
--R      workspace.
--R                                                                   Type: Void
--E 17
--S 18 of 22
myprimes := [i for i in 1.. | bar? i]
--R
--R   Compiling function bar? with type Integer -> Boolean
--R
--R   (18)  [5,17,37,101,197,257,401,577,677,1297,...]
--R                                                Type: Stream(PositiveInteger)
--E 18
--S 19 of 22
p := x**2 + 3*x + 1
--R
--R
--R          2
--R   (19)  x  + 3x + 1
--R                                                    Type: Polynomial(Integer)
--E 19
--S 20 of 22
Is(p, n * y**2 + (2*n+1)*y + 1)
--R
--R
--R   (20)  []
--R                                    Type: List(Equation(Polynomial(Integer)))
--E 20
--S 21 of 22
Is(p, n% * y**2 + (2*n%+1)*y + 1)
--R

--R
--R   (21)  []
--R                                    Type: List(Equation(Polynomial(Integer)))
--E 21
--S 22 of 22
Is(3*x**2 + 9*x + 1, n * y**2 + n**2 * y + 1)
--R
--R
--R   (22)  [n= x,y= 3]
--R                                    Type: List(Equation(Polynomial(Integer)))
--E 22
)spool
)lisp (bye)

———-

References^{[1] nothing}

8