Lurch: A Word Processor that Can Grade Students Proofs

Size: px
Start display at page:

Download "Lurch: A Word Processor that Can Grade Students Proofs"

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 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 information

Set Theory for The (Smart) Masses

Set 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 information

Section 2.4: Arguments with Quantified Statements

Section 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 information

Guidelines for Writing Mathematical Proofs

Guidelines 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 information

Assistant for Language Theory. SASyLF: An Educational Proof. Corporation. Microsoft. Key Shin. Workshop on Mechanizing Metatheory

Assistant 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 information

Reasoning About Programs Panagiotis Manolios

Reasoning 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 information

CS 161 Computer Security

CS 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 information

CS101 Introduction to Programming Languages and Compilers

CS101 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 information

CSC 501 Semantics of Programming Languages

CSC 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 information

LOGIC AND DISCRETE MATHEMATICS

LOGIC 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 information

INTRODUCTION TO MATHEMATICAL PROOFS: A TRANSITION (TEXTBOOKS IN MATHEMATICS) BY CHARLES ROBERTS

INTRODUCTION 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 information

Com S 541. Programming Languages I

Com 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 information

CSE Discrete Structures

CSE 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 information

Reading 1 : Introduction

Reading 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 information

CS3110 Spring 2017 Lecture 12: DRAFT: Constructive Real Numbers continued

CS3110 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 information

CSL105: Discrete Mathematical Structures. Ragesh Jaiswal, CSE, IIT Delhi

CSL105: 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 information

CS3110 Spring 2017 Lecture 9 Inductive proofs of specifications

CS3110 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 information

Program Verification & Testing; Review of Propositional Logic

Program 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 information

Welcome to CS 115 (Winter 2018)

Welcome 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 information

Creating Accessible PDFs

Creating 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 information

Welcome to CS 115 (Winter 2019)

Welcome 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 information

Introductory logic and sets for Computer scientists

Introductory 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 information

An Investigation of the Planarity Condition of Grötzsch s Theorem

An 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 information

The Eval/Apply Cycle Eval. Evaluation and universal machines. Examining the role of Eval. Eval from perspective of language designer

The 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 information

Proofwriting Checklist

Proofwriting 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 information

WELCOME! (download slides and.py files and follow along!) LECTURE 1

WELCOME! (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 information

Slide Set 2. for ENCM 335 in Fall Steve Norman, PhD, PEng

Slide 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 information

CS 142 Style Guide Grading and Details

CS 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 information

CS 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 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 information

1007 Imperative Programming Part II

1007 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 information

Automated Reasoning. Natural Deduction in First-Order Logic

Automated 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 information

Formal Methods. CITS5501 Software Testing and Quality Assurance

Formal 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 information

Lecture 1: Overview

Lecture 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 information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL 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 information

CS558 Programming Languages

CS558 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 information

An Annotated Language

An 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 information

Math 395 Homework #1 Due Wednesday, April 12

Math 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 information

Appendix G: Some questions concerning the representation of theorems

Appendix 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 information

Going beyond propositional logic

Going 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 information

Skill 1: Multiplying Polynomials

Skill 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 information

How invariants help writing loops Author: Sander Kooijmans Document version: 1.0

How 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 information

Week 8: The fundamentals of graph theory; Planar Graphs 25 and 27 October, 2017

Week 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 information

Introduction to Axiomatic Semantics

Introduction 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 information

Introduction to Sets and Logic (MATH 1190)

Introduction 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 information

CSI30. Chapter 1. The Foundations: Logic and Proofs Rules of inference with quantifiers Logic and bit operations Specification consistency

CSI30. 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 information

CSCE 120: Learning To Code

CSCE 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 information

JSish. Ryan Grasell. June For my senior project, I implemented Professor Keen s JSish spec in C++. JSish

JSish. 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 information

What is Flubaroo? Step 1: Create an Assignment

What 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 information

Proving Theorems with Athena

Proving 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 information

Sets. Margaret M. Fleck. 15 September 2010

Sets. 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 information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics 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 information

Topic 3: Propositions as types

Topic 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 information

COMP 410 Lecture 1. Kyle Dewey

COMP 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 information

Logik für Informatiker Logic for computer scientists

Logik 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 information

USING SPREADSHEETS AND DERIVE TO TEACH DIFFERENTIAL EQUATIONS

USING 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 information

Compiler Theory. (Semantic Analysis and Run-Time Environments)

Compiler 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 information

Principles of Program Analysis. Lecture 1 Harry Xu Spring 2013

Principles 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 information

Lecture 3: Recursion; Structural Induction

Lecture 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 information

Introduction to dependent types in Coq

Introduction 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 information

Modeling Programming Languages Formally

Modeling 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 information

Lecture 2: SML Basics

Lecture 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 information

Scope 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. 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 information

2. Getting Started When you start GeoGebra, you will see a version of the following window. 1

2. 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 information

CS 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 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 information

MATHEMATICAL STRUCTURES FOR COMPUTER SCIENCE

MATHEMATICAL 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 information

UNIVERSITY 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. 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 information

INTERFACE FOUNDATIONS OF WEB DEVELOPMENT

INTERFACE 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 information

Operational Semantics

Operational 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 information

The Mathematical Vernacular

The 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 information

Syllabus 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 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 information

Logic and Computation

Logic 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 information

Final Examination. Preliminaries. Compilers (CS F) Due: 11 a.m., Friday, 20 December 2002

Final 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 information

OpenMath in ConT E Xt

OpenMath 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 information

CMSC 330: Organization of Programming Languages. OCaml Imperative Programming

CMSC 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 information

Web Design I. CE Spring 2013 Continuing Education [Pick the date][type the sender company name]

Web 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 information

Packaging Theories of Higher Order Logic

Packaging 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 information

Lecture 5 - Axiomatic semantics

Lecture 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 information

CMSC 330: Organization of Programming Languages. OCaml Imperative Programming

CMSC 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 information

FUNctions. Lecture 03 Spring 2018

FUNctions. 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 information

CS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5

CS103 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 information

CS152: 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 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 information

CMPSCI 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 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 information

CS252 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 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 information

MGMT 230 WEB SITE PROJECT (INDIVIDUAL ASSIGNMENT)

MGMT 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 information

MATH 396 Communications in Mathematics

MATH 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 information

Programming Paradigms

Programming 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 information

VERSION Lab 3: Link Layer

VERSION 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 information

Quantification. Using the suggested notation, symbolize the statements expressed by the following sentences.

Quantification. 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 information

First-Order Translation Checklist

First-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 information

Logic-Flow Analysis of Higher-Order Programs

Logic-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 information

6.001 Notes: Section 6.1

6.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 information

This is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS

This 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 information

Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1

Goals: 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 information

Lesson 14: Graph of a Linear Equation Horizontal and Vertical Lines

Lesson 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 information

CHAPTER 1: INTEGERS. Image from CHAPTER 1 CONTENTS

CHAPTER 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 information

THE LOGIC OF QUANTIFIED STATEMENTS

THE 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 information

Functional Languages. Hwansoo Han

Functional 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 information

Programming Languages Third Edition

Programming 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 information

Ministry of Higher Education and Scientific Research

Ministry 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 information

MMT Objects. Florian Rabe. Computer Science, Jacobs University, Bremen, Germany

MMT 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