Lurch: A Word Processor that Can Grade Students Proofs
|
|
- Melinda Benson
- 5 years ago
- Views:
Transcription
1 Lurch: A Word Processor that Can Grade Students Proofs Nathan C. Carter, ncarter@bentley.edu Bentley University, Waltham, MA, USA joint work with Kenneth G. Monks, monks@scranton.edu University of Scranton, Scranton, PA, USA April 2014 N. Carter (Bentley Univ.) Lurch April / 40
2 What is Lurch? Introduction A free word processor that can check the steps of a proof Our main focus now is on introduction-to-proof courses (propositional/predicate logic, introductory set theory, number theory) Free and open-source for all major desktop platforms (Windows, Mac, Linux) N. Carter (Bentley Univ.) Lurch April / 40
3 Lurch Mission Statement Introduction Part 1 Lurch should be as indistinguishable from the ordinary activities of mathematics as possible, except for the additional services it provides. That is, it should only add to your math experience, not change your math experience. Part 2 Lurch should provide the software infrastructure the mathematical community needs for validating rigorous mathematics. That is, it should validate mathematical content created by you a spell-checker for mathematical rigor. N. Carter (Bentley Univ.) Lurch April / 40
4 Introduction Not a proof-checker in the usual sense of the phrase Differences from Mizar, Coq, et al.: Does not do any proofs for you All rules are customizable, even the rules of logic Focused on student learning Simple user interface N. Carter (Bentley Univ.) Lurch April / 40
5 Introduction Relevant results from education research Frequent, immediate feedback is good for learning Students work on assignments until they re judged correct More time on task is also good for learning Neater homework is easier to grade Professors report spending saved grading time with students N. Carter (Bentley Univ.) Lurch April / 40
6 User Interface Simple word processing Standard formatting tools L A TEX-style mathematical typesetting Inserting images Printing Saving Exporting to HTML N. Carter (Bentley Univ.) Lurch April / 40
7 User Interface Simple word processing Standard formatting tools L A TEX-style mathematical typesetting Inserting images Printing Saving Exporting to HTML N. Carter (Bentley Univ.) Lurch April / 40
8 But does it work? User Interface (only partially complete, with errors, as an example) N. Carter (Bentley Univ.) Lurch April / 40
9 User Interface Making bubbles Select text you want Lurch to understand Click the meaningful expression button Lurch will bubble the text N. Carter (Bentley Univ.) Lurch April / 40
10 Making bubbles User Interface The bubble reports the understood meaning It is shown iff the cursor is in it Three types of bubbles ME Property Context N. Carter (Bentley Univ.) Lurch April / 40
11 User Interface Bubble benefits No ambiguity No style restrictions No language restrictions Minimal overhead Pedagogical benefits N. Carter (Bentley Univ.) Lurch April / 40
12 Three types of bubbles Data storage 1 Meaningful Expressions (MEs), red bubbles Simple MEs include integer, float, string, variable, etc.: "hello" x Compound MEs include function applications and bindings: 150 x y t, t 0 s, t s = 1 Every step in any argument the user writes must be an ME. More complex structures (e.g., rule definitions) can also be expressed as MEs. Each ME is stored internally as an OpenMath tree. Example: N. Carter (Bentley Univ.) Lurch April / 40
13 Three types of bubbles Data storage 1 Meaningful Expressions (MEs), red bubbles Simple MEs include integer, float, string, variable, etc.: "hello" x Compound MEs include function applications and bindings: 150 x y t, t 0 s, t s = 1 Every step in any argument the user writes must be an ME. More complex structures (e.g., rule definitions) can also be expressed as MEs. Each ME is stored internally as an OpenMath tree. Example: N. Carter (Bentley Univ.) Lurch April / 40
14 Three types of bubbles Data storage 1 Meaningful Expressions (MEs), red bubbles Simple MEs include integer, float, string, variable, etc.: "hello" x Compound MEs include function applications and bindings: 150 x y t, t 0 s, t s = 1 Every step in any argument the user writes must be an ME. More complex structures (e.g., rule definitions) can also be expressed as MEs. Each ME is stored internally as an OpenMath tree. Example: N. Carter (Bentley Univ.) Lurch April / 40
15 Three types of bubbles Data storage 1 Meaningful Expressions (MEs), red bubbles Simple MEs include integer, float, string, variable, etc.: "hello" x Compound MEs include function applications and bindings: 150 x y t, t 0 s, t s = 1 Every step in any argument the user writes must be an ME. More complex structures (e.g., rule definitions) can also be expressed as MEs. Each ME is stored internally as an OpenMath tree. Example: N. Carter (Bentley Univ.) Lurch April / 40
16 Three types of bubbles Data storage 1 Meaningful Expressions (MEs), red bubbles Simple MEs include integer, float, string, variable, etc.: "hello" x Compound MEs include function applications and bindings: 150 x y t, t 0 s, t s = 1 Every step in any argument the user writes must be an ME. More complex structures (e.g., rule definitions) can also be expressed as MEs. Each ME is stored internally as an OpenMath tree. Example: N. Carter (Bentley Univ.) Lurch April / 40
17 Data storage What does OpenMath look like? ME bubble contents OpenMath XML encoding 77 <OMI>77</OMI> x x 9 <OMV name="x"/> <OMA> <OMS name="minus" cd="arith1"/> <OMV name="x"/> <OMI>9</OMI> </OMA> N. Carter (Bentley Univ.) Lurch April / 40
18 Three types of bubbles Data storage 1 Meaningful Expressions (MEs), red bubbles Simple MEs include integer, float, string, variable, etc.: "hello" x Compound MEs include function applications and bindings: 150 x y t, t 0 s, t s = 1 Every step in any argument the user writes must be an ME. More complex structures (e.g., rule definitions) can also be expressed as MEs. Each ME is stored internally as an OpenMath tree. Example: N. Carter (Bentley Univ.) Lurch April / 40
19 Three types of bubbles Data storage 1 Meaningful Expressions (MEs), red bubbles Simple MEs include integer, float, string, variable, etc.: "hello" x Compound MEs include function applications and bindings: 150 x y t, t 0 s, t s = 1 Every step in any argument the user writes must be an ME. More complex structures (e.g., rule definitions) can also be expressed as MEs. Each ME is stored internally as an OpenMath tree. Example: N. Carter (Bentley Univ.) Lurch April / 40
20 Data storage Where do rules come from? Answer #1 Anyone can add a rule to any document, if you know how to structure ME bubbles correctly to define it. Click a bubble s tag to change its role (e.g., if-then rule ). Nest bubbles to form a more complex structure (e.g., premise and conclusion MEs inside a rule ME). Label the rule so that it can be cited later. N. Carter (Bentley Univ.) Lurch April / 40
21 Data storage Where do rules come from? Answer #2 Some smart rules are built into the software and can be useful for skipping steps students have moved beyond. Simple arithmetic Example: = 39.5 Propositional tautologies (and set-theoretic versions) Examples: (x > 1 x < 1) (x < 1 x > 1) S ( {x f (x) = 10} C ) = (S {x f (x) = 10}) ( S C ) Future: CAS Examples: d dx sin x = cos x (t + 1) 3 = t 3 + 3t 2 + 3t + 1 N. Carter (Bentley Univ.) Lurch April / 40
22 Data storage Where do rules go? It is common to place a set of rules that go together into a single document, and use that document as a dependency. Lurch comes with many math topics built-in, each defined as a set of rules in a document, usable as a dependency. These files can be copied and changed, or new ones created from scratch. No programming is required. Thus entirely new mathematical systems can be built from the ground up in the word processor itself. Users can share them on the web, as mentioned earlier. N. Carter (Bentley Univ.) Lurch April / 40
23 Data storage An example library (dependency) N. Carter (Bentley Univ.) Lurch April / 40
24 Data storage An example library (dependency) N. Carter (Bentley Univ.) Lurch April / 40
25 Data storage An example library (dependency) N. Carter (Bentley Univ.) Lurch April / 40
26 Data storage An example library (dependency) N. Carter (Bentley Univ.) Lurch April / 40
27 Data storage An example library (dependency) N. Carter (Bentley Univ.) Lurch April / 40
28 Three types of bubbles Data storage 1 Meaningful Expressions (MEs), red bubbles Simple MEs include integer, float, string, variable, etc.: "hello" x Compound MEs include function applications and bindings: 150 x y t, t 0 s, t s = 1 Every step in any argument the user writes must be an ME. More complex structures (e.g., rule definitions) can also be expressed as MEs. Each ME is stored internally as an OpenMath tree. Example: N. Carter (Bentley Univ.) Lurch April / 40
29 Three types of bubbles Data storage 1 Meaningful Expressions (MEs), red bubbles 2 Properties, blue bubbles Used to decorate adjacent MEs with one of three types of attributes: labels, like L A TEX \label reasons, citing what justifies a step of work premises, in situations where this is necessary Do not change MEs semantics, only add to them (typically using OMATTR, but not always). Examples: N. Carter (Bentley Univ.) Lurch April / 40
30 Data storage Three types of bubbles 1 Meaningful Expressions (MEs), red bubbles 2 Properties, blue bubbles 3 Contexts, green bubbles Used to group together collections of MEs that belong together. Example: In Exercise 1, you might declare f (x) = π x. Then in Exercise 2, you declare f (x) = x In order to avoid the conclusion that π x = x 1000, we must keep these exercises in separate contexts. N. Carter (Bentley Univ.) Lurch April / 40
31 Data storage Three types of bubbles 1 Meaningful Expressions (MEs), red bubbles 2 Properties, blue bubbles 3 Contexts, green bubbles N. Carter (Bentley Univ.) Lurch April / 40
32 Data storage Three types of bubbles 1 Meaningful Expressions (MEs), red bubbles 2 Properties, blue bubbles 3 Contexts, green bubbles N. Carter (Bentley Univ.) Lurch April / 40
33 Data storage Three types of bubbles 1 Meaningful Expressions (MEs), red bubbles 2 Properties, blue bubbles 3 Contexts, green bubbles N. Carter (Bentley Univ.) Lurch April / 40
34 Demo Demo Small example proof using built-in rule libraries Theorem: If x {3} then x 9 = 27. Defining a custom rule, such as this one Bizarre rule: We say that x y is fuzzy if and only if x = y. Proving a theorem from custom rules Theorem: If x y is fuzzy then y x is fuzzy. N. Carter (Bentley Univ.) Lurch April / 40
35 Validation Validation specification Each type of ME has a different validation specification. These specifications together describe Lurch s validation algorithm. Example 1: Constant and variable declarations Valid iff the following conditions are met: 1 The identifier is not already declared, i.e., it is not in the scope of the declaration of the same identifier either as a variable or a constant. 2 The declaration does not have a reason assigned to it. N. Carter (Bentley Univ.) Lurch April / 40
36 Validation specification Validation Each type of ME has a different validation specification. These specifications together describe Lurch s validation algorithm. Example 1: Constant and variable declarations N. Carter (Bentley Univ.) Lurch April / 40
37 Validation Validation specification Each type of ME has a different validation specification. These specifications together describe Lurch s validation algorithm. Example 1: Constant and variable declarations Valid iff the following conditions are met: 1 The identifier is not already declared, i.e., it is not in the scope of the declaration of the same identifier either as a variable or a constant. 2 The declaration does not have a reason assigned to it. N. Carter (Bentley Univ.) Lurch April / 40
38 Validation Validation specification Each type of ME has a different validation specification. These specifications together describe Lurch s validation algorithm. Example 1: Constant and variable declarations Valid iff the following conditions are met: 1 The identifier is not already declared, i.e., it is not in the scope of the declaration of the same identifier either as a variable or a constant. 2 The declaration does not have a reason assigned to it. N. Carter (Bentley Univ.) Lurch April / 40
39 Validation Inspiration re: variables D.J. Velleman / Annals of Pure and Applied Logic 144 (2006) This paper introduces rules for variable declarations in natural deduction with the following properties. They obviate the need for complex checks one must perform before applying quantifier introduction and elimination rules. They match the way mathematicians often write in practice, and, in turn, what is expected of students in mathematics. N. Carter (Bentley Univ.) Lurch April / 40
40 Validation Inspiration re: variables D.J. Velleman / Annals of Pure and Applied Logic 144 (2006) We will say that a variable v is a declared variable at a line of a derivation if that line falls within the scope of a declaration of v. Variable declarations will be governed by the following natural rules: A variable may not occur free in a line of a derivation if it is not a declared variable at that line. A declaration of a variable may not occur in a line of a derivation if the line is in the scope of a previous declaration of the same variable. N. Carter (Bentley Univ.) Lurch April / 40
41 Inspiration re: variables Validation Universal Generalization (UG): If you begin a subordinate derivation with the line Declare v, and then you deduce ϕ(v) in this subordinate derivation, then you may end the subordinate derivation and infer xϕ(x). Universal Instantiation (UI): If t is a term and all variables occurring in t are declared variables, then from xϕ(x) you may infer ϕ(t). Existential Generalization (EG): If t is a term and all variables occurring in t are declared variables, then from ϕ(t) you may infer xϕ(x). Existential Instantiation (EI): You may use the line xϕ(x) to justify the line Declare v: ϕ(v). This line both declares the variable v and also asserts the statement ϕ(v). N. Carter (Bentley Univ.) Lurch April / 40
42 Inspiration re: variables Validation Same four rules in Lurch: N. Carter (Bentley Univ.) Lurch April / 40
43 Validation Validation specification Example 2: MEs with reasons attached Valid iff the following conditions are met: 1 The user must not have attempted to use more than one reason to justify the ME. 2 The cited reason must refer to a rule usable at the location cited. 3 The cited rule itself must have passed validation by Lurch. 4 The user must not have cited more premises than required, and all premises the user did cite must be MEs usable at the location cited. 5 If too few premises were cited, Lurch must be able to automatically locate the others immediately preceding the ME to be justified. 6 The forms of the premises and conclusion must match those of the rule s premises and conclusion and about ten other conditions not listed here... N. Carter (Bentley Univ.) Lurch April / 40
44 How is Lurch doing? Does Lurch help students? Classroom testing Bentley University in 2008 Preliminary version, much older than current release University of Scranton in Spring 2013 Introduction to proof course Walked students along a spectrum from formal proofs to informal ones Bentley University in Fall 2013 Introduction to formal logic course Propositional logic, predicate logic, basic proofs in analysis N. Carter (Bentley Univ.) Lurch April / 40
45 How is Lurch doing? Starting the journey: Formal proofs N. Carter (Bentley Univ.) Lurch April / 40
46 How is Lurch doing? On the way: Semiformal proofs N. Carter (Bentley Univ.) Lurch April / 40
47 How is Lurch doing? At the destination: Informal proofs (only partially complete, with errors, as an example) N. Carter (Bentley Univ.) Lurch April / 40
48 How is Lurch doing? Investigating success (informally) On frequent and immediate feedback... I liked that we could check our work as we are doing it it makes the learning more immediate by providing constant feedback even outside of class. It allowed me to guarantee when I got something right, which was helpful early on when I was unsure about what a proof was. On learning the mathematical system the instructor put into Lurch... I liked using Lurch because I was able to see what was needed for rules to work. Lurch became easier as I learned the rules and definitions, so using it in turn helped me learn those. On time spent on homework when using Lurch... I worked until I was correct. Anecdotal evidence from first assignment, Spring 2013 N. Carter (Bentley Univ.) Lurch April / 40
49 How is Lurch doing? Investigating success (informally) Do students want to use Lurch? Lurch use in both testing courses was optional. Students who chose not to use Lurch fell into two categories. Confident in the course material and didn t feel a need for help. (One such student was incorrectly confident.) Annoyed at being told they were wrong. (These usually converted when they saw the benefits.) Late in the 2013 testing course, when students were asked to use L A TEX for proofs, some voluntarily typed them in Lurch first to receive the benefits of validation. N. Carter (Bentley Univ.) Lurch April / 40
50 Plans for the future What s next? Improvements needed to existing app Efficiency: Long documents bog the software down Type system: Bubble tags that read, say, polynomial x R,... Visualizations of document and proof structure: E.g., arrows among bubbles to show premise and property relations Even less obtrusive bubbling interface Find and bubble the largest contiguous parseable text around the cursor Same for reason names and premise labels Automatic bubbling of entire lines of formal proofs N. Carter (Bentley Univ.) Lurch April / 40
51 What s next? Bigger plans for the future Move to a web app? We ve begun experiments to determine if this is a worthwhile endeavor. Pros End user does not need to install or update anything Usable on all platforms easily, including tablets Less of a barrier to potential adopters trying it out Less to maintain (no installer, no document layout code, etc.) Easier access to new technologies (MathJax, MathQuill, etc.) Cons Not yet clear that this is entirely possible Would require rebuilding many existing features It s harder to build a beautiful UI on the web N. Carter (Bentley Univ.) Lurch April / 40
52 What s next? Getting involved Testing in courses not taught by the developers Writing documents defining new mathematical systems Software development (C++, Qt, JavaScript, CoffeeScript) Design ideas, proofs of correctness Join us! N. Carter (Bentley Univ.) Lurch April / 40
A Web-Based Toolkit for Mathematical Word Processing Applications with Semantics
A Web-Based Toolkit for Mathematical Word Processing Applications with Semantics Nathan Carter* and Kenneth G. Monks Joint Mathematics Meetings, January 10, 2018 Nathan Carter* and Kenneth G. Monks Web-based
More informationSet Theory for The (Smart) Masses
Set Theory for The (Smart) Masses Moez A. AbdelGawad moez@cs.rice.edu SRTA-City, Alexandria, Egypt arxiv:1507.05037v1 [math.ho] 22 Jun 2015 Abstract. Proof Designer is a computer software program designed
More informationSection 2.4: Arguments with Quantified Statements
Section 2.4: Arguments with Quantified Statements In this section, we shall generalize the ideas we developed in Section 1.3 to arguments which involve quantified statements. Most of the concepts we shall
More informationGuidelines for Writing Mathematical Proofs
Appendix A Guidelines for Writing Mathematical Proofs One of the most important forms of mathematical writing is writing mathematical proofs. The writing of mathematical proofs is an acquired skill and
More informationAssistant for Language Theory. SASyLF: An Educational Proof. Corporation. Microsoft. Key Shin. Workshop on Mechanizing Metatheory
SASyLF: An Educational Proof Assistant for Language Theory Jonathan Aldrich Robert J. Simmons Key Shin School of Computer Science Carnegie Mellon University Microsoft Corporation Workshop on Mechanizing
More informationReasoning About Programs Panagiotis Manolios
Reasoning About Programs Panagiotis Manolios Northeastern University February 26, 2017 Version: 100 Copyright c 2017 by Panagiotis Manolios All rights reserved. We hereby grant permission for this publication
More informationCS 161 Computer Security
Wagner Spring 2014 CS 161 Computer Security 1/27 Reasoning About Code Often functions make certain assumptions about their arguments, and it is the caller s responsibility to make sure those assumptions
More informationCS101 Introduction to Programming Languages and Compilers
CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights
More informationCSC 501 Semantics of Programming Languages
CSC 501 Semantics of Programming Languages Subtitle: An Introduction to Formal Methods. Instructor: Dr. Lutz Hamel Email: hamel@cs.uri.edu Office: Tyler, Rm 251 Books There are no required books in this
More informationLOGIC AND DISCRETE MATHEMATICS
LOGIC AND DISCRETE MATHEMATICS A Computer Science Perspective WINFRIED KARL GRASSMANN Department of Computer Science University of Saskatchewan JEAN-PAUL TREMBLAY Department of Computer Science University
More informationINTRODUCTION TO MATHEMATICAL PROOFS: A TRANSITION (TEXTBOOKS IN MATHEMATICS) BY CHARLES ROBERTS
Read Online and Download Ebook INTRODUCTION TO MATHEMATICAL PROOFS: A TRANSITION (TEXTBOOKS IN MATHEMATICS) BY CHARLES ROBERTS DOWNLOAD EBOOK : INTRODUCTION TO MATHEMATICAL PROOFS: A Click link bellow
More informationCom S 541. Programming Languages I
Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR
More informationCSE Discrete Structures
CSE 2315 - Discrete Structures Lecture 5: Predicate Logic- Fall 2010 1 Motivation The use of predicates, variables, and quantifiers allows to represent a large number of arguments and expressions in formal
More informationReading 1 : Introduction
CS/Math 240: Introduction to Discrete Mathematics Fall 2015 Instructors: Beck Hasti and Gautam Prakriya Reading 1 : Introduction Welcome to CS 240, an introduction to discrete mathematics. This reading
More informationCS3110 Spring 2017 Lecture 12: DRAFT: Constructive Real Numbers continued
CS3110 Spring 2017 Lecture 12: DRAFT: Constructive Real Numbers continued Robert Constable Reminder: Prelim in class next Tuesday. It will not cover the real numbers beyond lecture 11 and comments on lecture
More informationCSL105: Discrete Mathematical Structures. Ragesh Jaiswal, CSE, IIT Delhi
is another way of showing that an argument is correct. Definitions: Literal: A variable or a negation of a variable is called a literal. Sum and Product: A disjunction of literals is called a sum and a
More informationCS3110 Spring 2017 Lecture 9 Inductive proofs of specifications
CS3110 Spring 2017 Lecture 9 Inductive proofs of specifications Robert Constable 1 Lecture Plan 1. Repeating schedule of remaining five problem sets and prelim. 2. Comments on tautologies and the Coq logic.
More informationProgram Verification & Testing; Review of Propositional Logic
8/24: p.1, solved; 9/20: p.5 Program Verification & Testing; Review of Propositional Logic CS 536: Science of Programming, Fall 2018 A. Why Course guidelines are important. Active learning is the style
More informationWelcome to CS 115 (Winter 2018)
Welcome to CS 115 (Winter 2018) Web page (the main information source): http://www.student.cs.uwaterloo.ca/ cs115/ Course Personnel: Contact information and office hours for all staff: instructors, ISAs
More informationCreating Accessible PDFs
Creating Accessible PDFs Using Word to Create Accessible PDF Documents This documentation is designed to be a tool for students, faculty and staff. When authoring electronic documents, it is important
More informationWelcome to CS 115 (Winter 2019)
Welcome to CS 115 (Winter 2019) Web page (the main information source): http://www.student.cs.uwaterloo.ca/ cs115/ Course Personnel: Contact information and office hours for all staff: instructors, ISAs
More informationIntroductory logic and sets for Computer scientists
Introductory logic and sets for Computer scientists Nimal Nissanke University of Reading ADDISON WESLEY LONGMAN Harlow, England II Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario
More informationAn Investigation of the Planarity Condition of Grötzsch s Theorem
Le Chen An Investigation of the Planarity Condition of Grötzsch s Theorem The University of Chicago: VIGRE REU 2007 July 16, 2007 Abstract The idea for this paper originated from Professor László Babai
More informationThe Eval/Apply Cycle Eval. Evaluation and universal machines. Examining the role of Eval. Eval from perspective of language designer
Evaluation and universal machines What is the role of evaluation in defining a language? How can we use evaluation to design a language? The Eval/Apply Cycle Eval Exp & env Apply Proc & args Eval and Apply
More informationProofwriting Checklist
CS103 Winter 2019 Proofwriting Checklist Cynthia Lee Keith Schwarz Over the years, we ve found many common proofwriting errors that can easily be spotted once you know how to look for them. In this handout,
More informationWELCOME! (download slides and.py files and follow along!) LECTURE 1
WELCOME! (download slides and.py files and follow along!) 6.0001 LECTURE 1 6.0001 LECTURE 1 1 TODAY course info what is computation python basics mathematical operations python variables and types NOTE:
More informationSlide Set 2. for ENCM 335 in Fall Steve Norman, PhD, PEng
Slide Set 2 for ENCM 335 in Fall 2018 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary September 2018 ENCM 335 Fall 2018 Slide Set 2 slide
More informationCS 142 Style Guide Grading and Details
CS 142 Style Guide Grading and Details In the English language, there are many different ways to convey a message or idea: some ways are acceptable, whereas others are not. Similarly, there are acceptable
More informationCS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106
CS 565: Programming Languages Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 Administrivia Who am I? Course web page http://www.cs.purdue.edu/homes/peugster/cs565spring08/ Office hours By appointment Main
More information1007 Imperative Programming Part II
Agenda 1007 Imperative Programming Part II We ve seen the basic ideas of sequence, iteration and selection. Now let s look at what else we need to start writing useful programs. Details now start to be
More informationAutomated Reasoning. Natural Deduction in First-Order Logic
Automated Reasoning Natural Deduction in First-Order Logic Jacques Fleuriot Automated Reasoning Lecture 4, page 1 Problem Consider the following problem: Every person has a heart. George Bush is a person.
More informationFormal Methods. CITS5501 Software Testing and Quality Assurance
Formal Methods CITS5501 Software Testing and Quality Assurance Pressman, R. Software Engineering: A Practitioner s Approach. Chapter 28. McGraw-Hill, 2005 The Science of Programming, David Gries, 1981
More informationLecture 1: Overview
15-150 Lecture 1: Overview Lecture by Stefan Muller May 21, 2018 Welcome to 15-150! Today s lecture was an overview that showed the highlights of everything you re learning this semester, which also meant
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built
More informationCS558 Programming Languages
CS558 Programming Languages Fall 2016 Lecture 7a Andrew Tolmach Portland State University 1994-2016 Values and Types We divide the universe of values according to types A type is a set of values and a
More informationAn Annotated Language
Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of
More informationMath 395 Homework #1 Due Wednesday, April 12
Math 395 Homework #1 Due Wednesday, April 12 LaTex is a typesetting system that is widely used by mathematicians. It has the ability to typeset just about any mathematical notation, as well as complex
More informationAppendix G: Some questions concerning the representation of theorems
Appendix G: Some questions concerning the representation of theorems Specific discussion points 1. What should the meta-structure to represent mathematics, in which theorems naturally fall, be? There obviously
More informationGoing beyond propositional logic
Going beyond propositional logic Consider the following statements: p: Ling took CS245 q: Ling passed CS245 r: Ling failed CS245 Taken literally, these are all atomic statements, and formally they have
More informationSkill 1: Multiplying Polynomials
CS103 Spring 2018 Mathematical Prerequisites Although CS103 is primarily a math class, this course does not require any higher math as a prerequisite. The most advanced level of mathematics you'll need
More informationHow invariants help writing loops Author: Sander Kooijmans Document version: 1.0
How invariants help writing loops Author: Sander Kooijmans Document version: 1.0 Why this document? Did you ever feel frustrated because of a nasty bug in your code? Did you spend hours looking at the
More informationWeek 8: The fundamentals of graph theory; Planar Graphs 25 and 27 October, 2017
(1/25) MA284 : Discrete Mathematics Week 8: The fundamentals of graph theory; Planar Graphs 25 and 27 October, 2017 1 Definitions 1. A graph 2. Paths and connected graphs 3. Complete graphs 4. Vertex degree
More informationIntroduction to Axiomatic Semantics
Introduction to Axiomatic Semantics Meeting 10, CSCI 5535, Spring 2009 Announcements Homework 3 due tonight Homework 2 is graded 13 (mean), 14 (median), out of 21 total, but Graduate class: final project
More informationIntroduction to Sets and Logic (MATH 1190)
Introduction to Sets and Logic () Instructor: Email: shenlili@yorku.ca Department of Mathematics and Statistics York University Dec 4, 2014 Outline 1 2 3 4 Definition A relation R from a set A to a set
More informationCSI30. Chapter 1. The Foundations: Logic and Proofs Rules of inference with quantifiers Logic and bit operations Specification consistency
Chapter 1. The Foundations: Logic and Proofs 1.13 Rules of inference with quantifiers Logic and bit operations Specification consistency 1.13 Rules of inference with quantifiers universal instantiation
More informationCSCE 120: Learning To Code
CSCE 120: Learning To Code Manipulating Data I Introduction This module is designed to get you started working with data by understanding and using variables and data types in JavaScript. It will also
More informationJSish. Ryan Grasell. June For my senior project, I implemented Professor Keen s JSish spec in C++. JSish
JSish Ryan Grasell June 2015 1 Introduction For my senior project, I implemented Professor Keen s JSish spec in C++. JSish is a subset of Javascript with support for execution from the command line and
More informationWhat is Flubaroo? Step 1: Create an Assignment
What is Flubaroo? Flubaroo is free tool that helps you quickly grade multiple-choice or fill-in-blank assignments. It is more than just a grading tool, Flubaroo also: Computes average assignment score.
More informationProving Theorems with Athena
Proving Theorems with Athena David R. Musser Aytekin Vargun August 28, 2003, revised January 26, 2005 Contents 1 Introduction 1 2 Proofs about order relations 2 3 Proofs about natural numbers 7 3.1 Term
More informationSets. Margaret M. Fleck. 15 September 2010
Sets Margaret M. Fleck 15 September 2010 These notes cover set notation, operations on sets, and how to prove claims involving sets (Rosen sections 2.1 and 2.2). They also cover some logic subtleties that
More informationSemantics via Syntax. f (4) = if define f (x) =2 x + 55.
1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)
More informationTopic 3: Propositions as types
Topic 3: Propositions as types May 18, 2014 Propositions as types We have seen that the main mathematical objects in a type theory are types. But remember that in conventional foundations, as based on
More informationCOMP 410 Lecture 1. Kyle Dewey
COMP 410 Lecture 1 Kyle Dewey About Me I research automated testing techniques and their intersection with CS education My dissertation used logic programming extensively This is my second semester at
More informationLogik für Informatiker Logic for computer scientists
Logik für Informatiker for computer scientists WiSe 2011/12 Overview Motivation Why is logic needed in computer science? The LPL book and software Scheinkriterien Why is logic needed in computer science?
More informationUSING SPREADSHEETS AND DERIVE TO TEACH DIFFERENTIAL EQUATIONS
USING SPREADSHEETS AND DERIVE TO TEACH DIFFERENTIAL EQUATIONS Kathleen Shannon, Ph.D. Salisbury State University Department of Mathematics and Computer Science Salisbury, MD 21801 KMSHANNON@SAE.SSU.UMD.EDU
More informationCompiler Theory. (Semantic Analysis and Run-Time Environments)
Compiler Theory (Semantic Analysis and Run-Time Environments) 005 Semantic Actions A compiler must do more than recognise whether a sentence belongs to the language of a grammar it must do something useful
More informationPrinciples of Program Analysis. Lecture 1 Harry Xu Spring 2013
Principles of Program Analysis Lecture 1 Harry Xu Spring 2013 An Imperfect World Software has bugs The northeast blackout of 2003, affected 10 million people in Ontario and 45 million in eight U.S. states
More informationLecture 3: Recursion; Structural Induction
15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion
More informationIntroduction to dependent types in Coq
October 24, 2008 basic use of the Coq system In Coq, you can play with simple values and functions. The basic command is called Check, to verify if an expression is well-formed and learn what is its type.
More informationModeling Programming Languages Formally
Modeling Programming Languages Formally CPSC 509: Programming Language Principles Ronald Garcia 8 January 2014 (Time Stamp: 20:42, Tuesday 16 th October, 2018) This course focuses on the design and analysis
More informationLecture 2: SML Basics
15-150 Lecture 2: SML Basics Lecture by Dan Licata January 19, 2012 I d like to start off by talking about someone named Alfred North Whitehead. With someone named Bertrand Russell, Whitehead wrote Principia
More informationScope and Introduction to Functional Languages. Review and Finish Scoping. Announcements. Assignment 3 due Thu at 11:55pm. Website has SML resources
Scope and Introduction to Functional Languages Prof. Evan Chang Meeting 7, CSCI 3155, Fall 2009 Announcements Assignment 3 due Thu at 11:55pm Submit in pairs Website has SML resources Text: Harper, Programming
More information2. Getting Started When you start GeoGebra, you will see a version of the following window. 1
Math 5335 Fall 2018 Lab #0: Installing and using GeoGebra This semester you will have a number of lab assignments which require you to use GeoGebra, a dynamic geometry program. GeoGebra lets you explore
More informationCS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM
CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM Objectives Defining a wellformed method to check class invariants Using assert statements to check preconditions,
More informationMATHEMATICAL STRUCTURES FOR COMPUTER SCIENCE
MATHEMATICAL STRUCTURES FOR COMPUTER SCIENCE A Modern Approach to Discrete Mathematics SIXTH EDITION Judith L. Gersting University of Hawaii at Hilo W. H. Freeman and Company New York Preface Note to the
More informationUNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger
UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS 164 Spring 2005 P. N. Hilfinger Project #2: Static Analyzer for Pyth Due: Wednesday, 6 April
More informationINTERFACE FOUNDATIONS OF WEB DEVELOPMENT
INTERFACE FOUNDATIONS OF WEB DEVELOPMENT FOUNDATIONS OF WEB DEVELOPMENT SYLLABUS Course Description Foundations of Web Development is a 10-week, part-time course where students learn the basic concepts
More informationOperational Semantics
15-819K: Logic Programming Lecture 4 Operational Semantics Frank Pfenning September 7, 2006 In this lecture we begin in the quest to formally capture the operational semantics in order to prove properties
More informationThe Mathematical Vernacular
The Mathematical Vernacular Freek Wiedijk Nijmegen University Abstract A mathematical vernacular is a formal language for writing mathematical s which resembles the natural language from
More informationSyllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)
Syllabus COSC-051-x - Computer Science I Fall 2018 Instructor: Jeremy Bolton, Ph.D. Asst Teaching Professor Department of Computer Science Office: TBD (see Course calendar for office hours) Email: jeremy.bolton@georgetown.edu
More informationLogic and Computation
Logic and Computation From Conceptualization to Formalization Here's what we do when we build a formal model (or do a computation): 0. Identify a collection of objects/events in the real world. This is
More informationFinal Examination. Preliminaries. Compilers (CS F) Due: 11 a.m., Friday, 20 December 2002
Compilers (CS362 2002F) Final Examination Due: 11 a.m., Friday, 20 December 2002 Preliminaries Problems Problem 1: A DFA for C Comments Problem 2: Disambiguating Grammars Problem 3: Anonymous Arrays Problem
More informationOpenMath in ConT E Xt
Examples OpenMath in ConT E Xt Hans Hagen PRAGMA ADE Content Shortcuts openmath-0001 openmath-0002 openmath-0003 Extensions openmath-0004 openmath-0005 openmath-0006 openmath-0007 openmath-0008 openmath-0009
More informationCMSC 330: Organization of Programming Languages. OCaml Imperative Programming
CMSC 330: Organization of Programming Languages OCaml Imperative Programming CMSC330 Fall 2017 1 So Far, Only Functional Programming We haven t given you any way so far to change something in memory All
More informationWeb Design I. CE Spring 2013 Continuing Education [Pick the date][type the sender company name]
Web Design I CE 2411 01 Spring 2013 Continuing Education [Pick the date][type the sender company name] Course Information Location: Terra 1212 Dates: FEB 5 APRIL 16 Instructor Information Name: Karissa
More informationPackaging Theories of Higher Order Logic
Packaging Theories of Higher Order Logic Joe Hurd Galois, Inc. joe@galois.com Theory Engineering Workshop Tuesday 9 February 2010 Joe Hurd Packaging Theories of Higher Order Logic 1 / 26 Talk Plan 1 Introduction
More informationLecture 5 - Axiomatic semantics
Program Verification March 2014 Lecture 5 - Axiomatic semantics Lecturer: Noam Rinetzky Scribes by: Nir Hemed 1.1 Axiomatic semantics The development of the theory is contributed to Robert Floyd, C.A.R
More informationCMSC 330: Organization of Programming Languages. OCaml Imperative Programming
CMSC 330: Organization of Programming Languages OCaml Imperative Programming CMSC330 Spring 2018 1 So Far, Only Functional Programming We haven t given you any way so far to change something in memory
More informationFUNctions. Lecture 03 Spring 2018
FUNctions Lecture 03 Spring 2018 Announcements PS0 Due Tomorrow at 11:59pm WS1 Released soon, due next Friday 2/2 at 11:59pm Not quite understand a topic in lecture this week? Come to Tutoring Tomorrow
More informationCS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5
CS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5 This fifth problem set explores the regular languages, their properties, and their limits. This will be your first foray into computability theory,
More informationCS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011
CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics Dan Grossman Spring 2011 Review e ::= λx. e x e e c v ::= λx. e c τ ::= int τ τ Γ ::= Γ, x : τ (λx. e) v e[v/x] e 1 e 1 e 1 e
More informationCMPSCI 250: Introduction to Computation. Lecture #1: Things, Sets and Strings David Mix Barrington 22 January 2014
CMPSCI 250: Introduction to Computation Lecture #1: Things, Sets and Strings David Mix Barrington 22 January 2014 Things, Sets, and Strings The Mathematical Method Administrative Stuff The Objects of Mathematics
More informationCS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013
CS252 Advanced Programming Language Principles Prof. Tom Austin San José State University Fall 2013 What are some programming languages? Why are there so many? Different domains Mobile devices (Objective
More informationMGMT 230 WEB SITE PROJECT (INDIVIDUAL ASSIGNMENT)
MGMT 230 WEB SITE PROJECT (INDIVIDUAL ASSIGNMENT) This assignment will be submitted in two parts. Part 1 will consist of written website planning and design documentation for a small website (maximum 6
More informationMATH 396 Communications in Mathematics
MATH 396 Communications in Mathematics About the course. Catalog description: Electronic, written and oral communication in mathematics. Prerequisite: Math 220 and junior/senior status, mathematics majors
More informationProgramming Paradigms
PP 2017/18 Unit 11 Functional Programming with Haskell 1/37 Programming Paradigms Unit 11 Functional Programming with Haskell J. Gamper Free University of Bozen-Bolzano Faculty of Computer Science IDSE
More informationVERSION Lab 3: Link Layer
Lab 3: Link Layer Objective In this lab, you will investigate Ethernet and the ARP protocol. You will also prove you are a Wireshark Ninja by dissecting an unknown protocol. Knowledge from Lecture 20 and
More informationQuantification. Using the suggested notation, symbolize the statements expressed by the following sentences.
Quantification In this and subsequent chapters, we will develop a more formal system of dealing with categorical statements, one that will be much more flexible than traditional logic, allow a deeper analysis
More informationFirst-Order Translation Checklist
CS103 Winter 2019 First-Order Translation Checklist Cynthia Lee Keith Schwarz In this handout, we ve distilled five specific points that you should check in your first-order logic statements before submitting
More informationLogic-Flow Analysis of Higher-Order Programs
Logic-Flow Analysis of Higher-Order Programs Matt Might http://matt.might.net/ POPL 2007 Why? Tim Sweeney, POPL 2006 Static array-bounds checking. Example... a[i]... Will 0 i < a.length always hold? 3
More information6.001 Notes: Section 6.1
6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of
More informationThis is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS
1 THE FORMALIZATION OF MATHEMATICS by Harvey M. Friedman Ohio State University Department of Mathematics friedman@math.ohio-state.edu www.math.ohio-state.edu/~friedman/ May 21, 1997 Can mathematics be
More informationGoals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1
Natural Semantics Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 1 Natural deduction is an instance of first-order logic; that is, it is the formal
More informationLesson 14: Graph of a Linear Equation Horizontal and Vertical Lines
Lesson 14: Graph of a Linear Equation Horizontal and Vertical Lines Student Outcomes Students graph linear equations in standard form, 0), that produce a horizontal or a vertical line. Lesson Notes The
More informationCHAPTER 1: INTEGERS. Image from CHAPTER 1 CONTENTS
CHAPTER 1: INTEGERS Image from www.misterteacher.com CHAPTER 1 CONTENTS 1.1 Introduction to Integers 1. Absolute Value 1. Addition of Integers 1.4 Subtraction of Integers 1.5 Multiplication and Division
More informationTHE LOGIC OF QUANTIFIED STATEMENTS
CHAPTER 3 THE LOGIC OF QUANTIFIED STATEMENTS Copyright Cengage Learning. All rights reserved. SECTION 3.4 Arguments with Quantified Statements Copyright Cengage Learning. All rights reserved. Arguments
More informationFunctional Languages. Hwansoo Han
Functional Languages Hwansoo Han Historical Origins Imperative and functional models Alan Turing, Alonzo Church, Stephen Kleene, Emil Post, etc. ~1930s Different formalizations of the notion of an algorithm
More informationProgramming Languages Third Edition
Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand
More informationMinistry of Higher Education and Scientific Research
Morning Study Department of information technology Institute of Technical - Duhok. University of Polytechnic Duhok. Subject: Web Technology Course book for 2nd year. Lecturer s name: MSc. Ayman Nashwan
More informationMMT Objects. Florian Rabe. Computer Science, Jacobs University, Bremen, Germany
MMT Objects Florian Rabe Computer Science, Jacobs University, Bremen, Germany Abstract Mmt is a mathematical knowledge representation language, whose object layer is strongly inspired by OpenMath. In fact,
More information