CID Outreach at Aston Universitysimpson/CCC2019Talks/konecny...CID Outreach at Aston University...
Transcript of CID Outreach at Aston Universitysimpson/CCC2019Talks/konecny...CID Outreach at Aston University...
CID Outreach at Aston University
Overview
Web-based exact function/fractal plotter
Visualise rigorous approximationsArbitrary accuracySome obviously infinite behaviours
Short talks for 16-17 year olds
Computing with infinite data is coolInfinite data simplifies programs and reasoning
Project on verification of numerical software
50% funded by AdaCoreFocus on SPARK/Ada and FP
Junaid Rasheed's PhD project
https://github.com/michalkonecny/exact-function-plotter
Short talks for 16-17 year olds 30 min talkto 30 selected school studentsin a 4/5-day programming workshop
- Appreciate infinity in computation- Infinite structures simplify programs, their specifications and reasoning
Goals of talk
sqrt(s) = sqrtB(10,s)sqrtB(0, s) = 1sqrtB(n, s) =
let x = sqrtB(n-1, s)in (x + s/x) / 2
sqrt(s) ~
for all s ...around 4 billion values of s
is the program correct?
take 10 sqdiv11 =[1,10,12,21,23,32,34,43,45,54]
demo
divisible by 11
sqdiv11 = [x|x<-[1..], (x*x-1) `mod` 11 == 0]
Short talks for 16-17 year olds 30 min talkto 30 selected school studentsin a 4/5-day programming workshop
- Appreciate infinity in computation- Infinite structures simplify programs, their specifications and reasoning- See how computation involving infinite lists works
Goals of talk
[1,2,3] = 1 : (2 : (3 : []))
take 3 [1..] = take 3 (1:(2:(3:(from 4)))) = 1:(2:(3:[])) = [1,2,3]
from n = n : (from (n + 1))
[1..] = from 1 = 1 : (from 2) = 1 : (2 : (from 3)) = 1 : (2 : (3 : (from 4))) = ... = 1 : (2 : (3 : (4 : ... )))
Short talks for 16-17 year olds 30 min talkto 30 selected school studentsin a 4/5-day programming workshop
- Appreciate infinity in computation- Infinite structures simplify programs, their specifications and reasoning- See how computation involving infinite lists works- Observe exact real computation
Goals of talk
Real numbers are infinite = 3.14159265358979323846264338327950288419716939937510582097494459230781 640628620899862803482534211706798214808651328230664709384460955058223
172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986...
inifinitely many digitsno "simple" patternbut a "complex" pattern:a computer program
(by Jens Blanck, https://github.com/jensblanck/cdar)
π
Short talks for 16-17 year olds 30 min talkto 30 selected school studentsin a 4/5-day programming workshop
- Appreciate infinity in computation- Infinite structures simplify programs, their specifications and reasoning- See how computation involving infinite lists works- Observe exact real computation
- Observe and reflect on reliable approximations of numbers, real functions, 2D curves, simple fractals
Goals of talk
1. Specifications using real numbers2. 3.
1.
1. Specifications using real numbers2. Better prover support3.
1.
2.
1. Specifications using real numbers2. Better prover support3. Executable specifications with reals
1.
2.
SPARKintervalarithmetic
3.