Lucas-Interpretation Users Views Programmers from Users - - PowerPoint PPT Presentation

lucas interpretation
SMART_READER_LITE
LIVE PREVIEW

Lucas-Interpretation Users Views Programmers from Users - - PowerPoint PPT Presentation

Lucas- Interpretation Walther Neuper Lucas-Interpretation Users Views Programmers from Users Perspective Students Lucas- Interpretation Language Interpreter Walther Neuper Dialogue Summary Conclusions IICM, Institute for


slide-1
SLIDE 1

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation from Users’ Perspective

Walther Neuper

IICM, Institute for Computer Media, University of Technology. Graz, Austria

ThEdu: Theorem Proving Components for Educational Software at CICM, Bialystok, Poland July 25, 2016

slide-2
SLIDE 2

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Outline

1

User’s Views Demo: Programmers’ View Demo: Students’ View

2

Lucas-Interpretation The Language The Interpreter Where is Interaction from? Summary

3

Conclusions for Users Usability for Programmers Self-explaning System for Students

slide-3
SLIDE 3

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Outline

1

User’s Views Demo: Programmers’ View Demo: Students’ View

2

Lucas-Interpretation The Language The Interpreter Where is Interaction from? Summary

3

Conclusions for Users Usability for Programmers Self-explaning System for Students

slide-4
SLIDE 4

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Programmers’ View

Demonstration Summary:

  • Programming is painful presently . . .
  • program syntax checked as Isabelle term
  • rewrite-sets for execution compiled by hand
  • . . . thus migration to Isabelle’s function package
  • functional programs without input / output —

where comes user-interaction from ???

slide-5
SLIDE 5

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Programmers’ View

Demonstration Summary:

  • Programming is painful presently . . .
  • program syntax checked as Isabelle term
  • rewrite-sets for execution compiled by hand
  • . . . thus migration to Isabelle’s function package
  • functional programs without input / output —

where comes user-interaction from ???

slide-6
SLIDE 6

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Programmers’ View

Demonstration Summary:

  • Programming is painful presently . . .
  • program syntax checked as Isabelle term
  • rewrite-sets for execution compiled by hand
  • . . . thus migration to Isabelle’s function package
  • functional programs without input / output —

where comes user-interaction from ???

slide-7
SLIDE 7

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Programmers’ View

Demonstration Summary:

  • Programming is painful presently . . .
  • program syntax checked as Isabelle term
  • rewrite-sets for execution compiled by hand
  • . . . thus migration to Isabelle’s function package
  • functional programs without input / output —

where comes user-interaction from ???

slide-8
SLIDE 8

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Outline

1

User’s Views Demo: Programmers’ View Demo: Students’ View

2

Lucas-Interpretation The Language The Interpreter Where is Interaction from? Summary

3

Conclusions for Users Usability for Programmers Self-explaning System for Students

slide-9
SLIDE 9

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Students’ View

Demonstration Summary: Students require these services for learning . . .

1 check user input automatically, flexibly and reliably:

Input establishes a proof situation (for automated proving) with respect to the logical context

2 give explanations on request by learners:

All underlying mathematics knowledge is transparent due to the “LCF-paradigm” in Isabelle

3 propose a next step if learners get stuck:

“next-step-guidance” due to Lucas-Interpretation.

slide-10
SLIDE 10

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Students’ View

Demonstration Summary: Students require these services for learning . . .

1 check user input automatically, flexibly and reliably:

Input establishes a proof situation (for automated proving) with respect to the logical context

2 give explanations on request by learners:

All underlying mathematics knowledge is transparent due to the “LCF-paradigm” in Isabelle

3 propose a next step if learners get stuck:

“next-step-guidance” due to Lucas-Interpretation.

slide-11
SLIDE 11

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Students’ View

Demonstration Summary: Students require these services for learning . . .

1 check user input automatically, flexibly and reliably:

Input establishes a proof situation (for automated proving) with respect to the logical context

2 give explanations on request by learners:

All underlying mathematics knowledge is transparent due to the “LCF-paradigm” in Isabelle

3 propose a next step if learners get stuck:

“next-step-guidance” due to Lucas-Interpretation.

slide-12
SLIDE 12

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Students’ View

Demonstration Summary: Students require these services for learning . . .

1 check user input automatically, flexibly and reliably:

Input establishes a proof situation (for automated proving) with respect to the logical context

2 give explanations on request by learners:

All underlying mathematics knowledge is transparent due to the “LCF-paradigm” in Isabelle

3 propose a next step if learners get stuck:

“next-step-guidance” due to Lucas-Interpretation.

slide-13
SLIDE 13

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Students’ View

Demonstration Summary: Students require these services for learning . . .

1 check user input automatically, flexibly and reliably:

Input establishes a proof situation (for automated proving) with respect to the logical context

2 give explanations on request by learners:

All underlying mathematics knowledge is transparent due to the “LCF-paradigm” in Isabelle

3 propose a next step if learners get stuck:

“next-step-guidance” due to Lucas-Interpretation.

slide-14
SLIDE 14

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Students’ View

Demonstration Summary: Students require these services for learning . . .

1 check user input automatically, flexibly and reliably:

Input establishes a proof situation (for automated proving) with respect to the logical context

2 give explanations on request by learners:

All underlying mathematics knowledge is transparent due to the “LCF-paradigm” in Isabelle

3 propose a next step if learners get stuck:

“next-step-guidance” due to Lucas-Interpretation.

slide-15
SLIDE 15

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Students’ View

Demonstration Summary: Students require these services for learning . . .

1 check user input automatically, flexibly and reliably:

Input establishes a proof situation (for automated proving) with respect to the logical context

2 give explanations on request by learners:

All underlying mathematics knowledge is transparent due to the “LCF-paradigm” in Isabelle

3 propose a next step if learners get stuck:

“next-step-guidance” due to Lucas-Interpretation.

slide-16
SLIDE 16

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Students’ View

Demonstration Summary: Students require these services for learning . . .

1 check user input automatically, flexibly and reliably:

Input establishes a proof situation (for automated proving) with respect to the logical context

2 give explanations on request by learners:

All underlying mathematics knowledge is transparent due to the “LCF-paradigm” in Isabelle

3 propose a next step if learners get stuck:

“next-step-guidance” due to Lucas-Interpretation.

slide-17
SLIDE 17

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Outline

1

User’s Views Demo: Programmers’ View Demo: Students’ View

2

Lucas-Interpretation The Language The Interpreter Where is Interaction from? Summary

3

Conclusions for Users Usability for Programmers Self-explaning System for Students

slide-18
SLIDE 18

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Another program with tactics ≈ break-points

. partial_function diffeq_2_mass_oscil (m, l_0, [c_1, c_2], d, springs, dampers, sums) = 1 let 11 begin_parallel 1101 springs = Take springs “forces of springs” 111 parallel 1111 dampers = Take dampers “forces of dampers” 112 parallel 1121 sums = Take sums “mass times acceleration equals sum 12 end_parallel 13 diffeq = Take sums “” 14 diffeq = Substitute [ springs, dampers ] 15 diffeq = Rewrite_Set normalise 16 diffeq = Rewrite_Set vectorify “switch to vector representation” 2 in 21 diffeq

slide-19
SLIDE 19

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Outline

1

User’s Views Demo: Programmers’ View Demo: Students’ View

2

Lucas-Interpretation The Language The Interpreter Where is Interaction from? Summary

3

Conclusions for Users Usability for Programmers Self-explaning System for Students

slide-20
SLIDE 20

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation (LI)

program location interpret

I:

* location * environment * environment

slide-21
SLIDE 21

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation (LI)

program location * calculation interpret

LI: I:

* location * environment * environment

slide-22
SLIDE 22

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation (LI)

program location * calculation interpret

LI:

formula

  • r

tactic

I:

* location * environment * environment

slide-23
SLIDE 23

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation (LI)

program location * calculation * theories * context interpret

LI:

formula

  • r

tactic

I:

* location * environment * context * environment * calculation

slide-24
SLIDE 24

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation (LI)

program location * calculation * theories * context interpret prove

LI:

formula

  • r

tactic

I:

* location * environment * context * environment * calculation

slide-25
SLIDE 25

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation (LI)

program location * calculation * theories * context interpret prove

LI:

formula

  • r

tactic

I:

computation deduction * location * environment * context * environment * calculation

slide-26
SLIDE 26

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation (LI)

program location * calculation * theories * context interpret prove

LI:

formula

  • r

tactic

I:

computation deduction semantics of programming languages – settled! * location * environment * context * environment * calculation

slide-27
SLIDE 27

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation (LI)

program location * calculation * theories * context interpret prove

LI:

formula

  • r

tactic

I:

computation deduction semantics of programming languages – settled! semantics of struct.derivations (R.J.Back) – settled! * location * environment * context * environment * calculation

slide-28
SLIDE 28

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Lucas-Interpretation (LI)

program location * calculation * theories * context interpret prove

LI:

formula

  • r

tactic

I:

computation deduction semantics of programming languages – settled! semantics of struct.derivations (R.J.Back) – settled!

?

* location * environment * context * environment * calculation

slide-29
SLIDE 29

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Outline

1

User’s Views Demo: Programmers’ View Demo: Students’ View

2

Lucas-Interpretation The Language The Interpreter Where is Interaction from? Summary

3

Conclusions for Users Usability for Programmers Self-explaning System for Students

slide-30
SLIDE 30

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

The Dialogue Module

slide-31
SLIDE 31

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Outline

1

User’s Views Demo: Programmers’ View Demo: Students’ View

2

Lucas-Interpretation The Language The Interpreter Where is Interaction from? Summary

3

Conclusions for Users Usability for Programmers Self-explaning System for Students

slide-32
SLIDE 32

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Summary

Lucas-Interpretation is a novel contribution, which

1 interprets a functional language

  • “purely functional” no input / output: interaction −

→ Pt.3

  • programmer concerned with mathematics only
  • TODO: embed into Isabelle’s function package

2 controls input / output as side-effects

  • regards tactics as “break points” (like debugger)
  • hands over control at tactics −

→ Pt.3

3 delegates user-interaction

to a Dialogue Module:

  • “dialogue authoring” by respective experts

(DialogRules)

  • adaptive to courses
  • adaptive to individual students UserModel
slide-33
SLIDE 33

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Summary

Lucas-Interpretation is a novel contribution, which

1 interprets a functional language

  • “purely functional” no input / output: interaction −

→ Pt.3

  • programmer concerned with mathematics only
  • TODO: embed into Isabelle’s function package

2 controls input / output as side-effects

  • regards tactics as “break points” (like debugger)
  • hands over control at tactics −

→ Pt.3

3 delegates user-interaction

to a Dialogue Module:

  • “dialogue authoring” by respective experts

(DialogRules)

  • adaptive to courses
  • adaptive to individual students UserModel
slide-34
SLIDE 34

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Summary

Lucas-Interpretation is a novel contribution, which

1 interprets a functional language

  • “purely functional” no input / output: interaction −

→ Pt.3

  • programmer concerned with mathematics only
  • TODO: embed into Isabelle’s function package

2 controls input / output as side-effects

  • regards tactics as “break points” (like debugger)
  • hands over control at tactics −

→ Pt.3

3 delegates user-interaction

to a Dialogue Module:

  • “dialogue authoring” by respective experts

(DialogRules)

  • adaptive to courses
  • adaptive to individual students UserModel
slide-35
SLIDE 35

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Outline

1

User’s Views Demo: Programmers’ View Demo: Students’ View

2

Lucas-Interpretation The Language The Interpreter Where is Interaction from? Summary

3

Conclusions for Users Usability for Programmers Self-explaning System for Students

slide-36
SLIDE 36

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Usability for Programmers

Programming in IS AC

  • becomes comparable with Mathematica/Maple/. . .

if IS

AC adopts Isabelle’s function package

  • is embedded into mechanising mathematics, i.e.
  • development of theories (definitions, laws, . . . )
  • development of libraries of specifications
  • development of verified Computer Algebra
  • is separated from users’ interaction:

interaction is a side-effect managed by Lucas-Interpretation

  • mathematicians focus mathematics
  • interaction is covered by dialogue authors
slide-37
SLIDE 37

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Outline

1

User’s Views Demo: Programmers’ View Demo: Students’ View

2

Lucas-Interpretation The Language The Interpreter Where is Interaction from? Summary

3

Conclusions for Users Usability for Programmers Self-explaning System for Students

slide-38
SLIDE 38

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Self-explaning system . . .

. . . while step-wise applying a method (solving)

  • during trial & error learning:
  • feedback on input steps (formula | tactic)
  • <next> step by system, if got stuck
  • “next-step guidance” by dialogue component:
  • suggest next step partially
  • suggest next steps for selection
  • auto-complete partial input
  • in changing levels of abstraction:
  • formal justification for each formula
  • justification = meta-, formula = object-language
  • another “meta-level”: instructions in program
  • . . .

. . . while modelling and specifying an engineering problem: − → another talk

slide-39
SLIDE 39

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Self-explaning system . . .

. . . while step-wise applying a method (solving)

  • during trial & error learning:
  • feedback on input steps (formula | tactic)
  • <next> step by system, if got stuck
  • “next-step guidance” by dialogue component:
  • suggest next step partially
  • suggest next steps for selection
  • auto-complete partial input
  • in changing levels of abstraction:
  • formal justification for each formula
  • justification = meta-, formula = object-language
  • another “meta-level”: instructions in program
  • . . .

. . . while modelling and specifying an engineering problem: − → another talk

slide-40
SLIDE 40

Lucas- Interpretation Walther Neuper User’s Views

Programmers Students

Lucas- Interpretation

Language Interpreter Dialogue Summary

Conclusions

Programmers Students

Thank you for Attention!

  • F. Haftmann, A. Lochbihler & W. Schreiner.

Towards abstract and executable multivariate polynomials in Isabelle. Isabelle Workshop 2014, http://www.infsec.ethz.ch/ people/andreloc/publications/haftmann14iw.pdf.