130 likes | 263 Views
A Tool for Facilitating Students' Construction of Proofs. by Hugh McGuire. E.g.:. Why have students use software for constructing proofs?. Software provides framework for proofs. - students sometimes err just setting up proofs
E N D
A Tool forFacilitating Students' Construction of Proofs by Hugh McGuire
Why have students use software for constructing proofs? • Software provides framework for proofs. - students sometimes err just setting up proofs • Software does ‘secretarial’ work of performing symbolic manipulations. e.g. substituting "0" and "n+1" where appropriate when applying stepwise induction - students sometimes err in copying, substituting, … • Software enforces soundness. e.g. to prove something for general n, can’t just prove for a sample value
Why not have students use software for constructing proofs?? • Formal logic is cumbersome whereas English is ‘powerful’? But ProofBuilder provides same ‘operations’ as English: induction, case splitting, substitution according to equations, direct proof, proof by contradiction, etc. • Software doesn’t provide standard mathematics notation? But ProofBuilder provides “”, “¬”, “≤”, “”, etc. • You may want to use different symbols? But user can choose e.g. “” vs. “=>” vs. “implies” (vs. …) • Software does work that students should do? But ProofBuilderavoids “automated reasoning”: the user needs to select logic operations.
Comparisons to related work • Tools such as Maple, Mathematica do some of the work that students should do in proofs, e.g. providing solutions for summations. • Flash proofs of [Ensley2006] are ‘prefabricated’. • Systems profiled in [JAR 32:3]are restricted to propositions or do automated reasoning rather than making students learn to construct proofs. • [EPGY:TPE2006] and [Billingsley2006] use some notation that isn’t standard for mathematics; and they check proofs more than helping students construct proofs by performing selected logic steps. • Tableau [Burback1990] and Deduct [Colon2003] limit scope (operations, notation) to [Manna1993], e.g. no case splitting, “”, “|” (divides), numerals (“2”,“3”,…), etc. Also, no longer supported. • ProofBuilder extends the capabilities of Tableau and Deduct, providing more notation (see preceding paragraph),adding more processing such as simplification of “¬P (P Q)”, providing more proof strategies/structures such as case splitting, etc.
Sample theorems 1 • Here are some theorems which are provable using ProofBuilder: • [(P ∨ Q) ⇒ R] ⇒ [(P ⇒ R) ∧ (Q ⇒ R)] • (∀x,y,z)[x|y ∧ x|z ⇒ x|(y + z)] • (∀n)[10^n mod 3 = 1] • (∀x,y)[log(x, x^y) = y] • (∀n)[n ≤ 2^n] • (∀S1,S2)[(S1 S2) (S1 ~S2) = S1]
Sample theorems 2: showing axioms • Axioms: (∀x).IsParent(mother_of(x),x) (∀x).IsParent(father_of(x),x) (∀p,x)[IsParent(p,x) ⇒ IsGrandmother(mother_of(p),x)] (∀p,x)[IsParent(p,x) ⇒ IsGrandfather(father_of(p),x)] • Theorems: (∀x)(∃p).IsParent(p,x) (∀p,x)(IsParent(p,x) ⇒ [p = mother_of(x) ∨ p = father_of(x)]) ⇒ (∀g,x)((∃p)[IsParent(g,p) ∧ IsParent(p,x)] ⇒ [IsGrandmother(g,x) ∨ IsGrandfather(g,x)])
How to use ProofBuilder 1: starting • ProofBuilder is written in Java (version 5.0), so it runs on essentially all platforms. • You can double-click on ProofBuilder.jar . • Or in a command-line environment such as LINUX you can type: $ java -jar ProofBuilder.jar -ea $ • Main window etc. opens. • You need to enter theorem, then select logic steps using menus or keyboard shortcuts…
How to use ProofBuilder2: entering formulas • You can type formulas or copy/paste them (from Web etc.). • Formulas can be separated into premises and theorem. • If typing formulas, pressing alt (+ctrl on Mac) maps characters to symbols e.g. as follows: n ¬ ^ | ? = a x g ≥ l ≤ # ≠ e [ { u n @ Øs ∑ p ∏ etc. • If you want, instead of that, you can type words e.g. “not”, “and”, “implies”, “forall”, “union”, … • Or further if you want instead, you can type symbols using ASCII characters e.g. “/\”, “=>”, “A”, “!=”, “union”, …
How to Use ProofBuilder3: doing deductive steps • Deductive steps apply to overall formulas or subformulas which you select. • Rewrite, e.g. change ¬(1 2) to (¬1 ¬2) or vice-versa. • Substitute using equivalences, e.g. given(x,y)(x|y (z)[x*z = y]), change a|b to (z)[a*z = b] . • Remove quantifiers, e.g. change (z)[a*z = b] to a*k1 = b . • Substitute using equations, e.g. given a*k1 = b and a*k2 = c, change a*z = b + c to a*z = a*k1 + a*k2 . • Invoke induction, stepwise or strong, e.g. as shown earlier on page 2. • Split proof into cases, e.g. as shown earlier on page 2. • Etc.
Status, evaluation of ProofBuilder • current version is `beta’/`alpha’: written just last summer (2006), and used in just one semester so far. • Students managed to use ProofBuilderas well as previous students used Deduct. • Students were happy to have software do some of the work of constructing proofs. • Students naturally wanted remaining bugs fixed, plus they had suggestions e.g. to improve mechanisms for selecting subformulas. • Students need more guidance regarding what they should be trying to achieve (showing that a formula is true). • I’m interested in obtaining more feedback from a broad range of people (students, instructors, researchers of reasoning systems).
Future work • Continue general development: finish various features such as saving intermediate work, improve the mechanisms for selecting subformulas, … • Obtain more comparative analyses of ProofBuilderby obtaining evaluations of it from other instructors etc. • Cover more topics such as group theory, and proof strategies/structures such as some of [Gries1993].
References • [Billingsley2006] Billingsley,William & Robinson,Peter: "An Interface for Student Proof Exercises Using MathsTiles and Isabelle/HOL in an Intelligent Book", manuscript, 2006. • [Burback1990] Burback,Ron & Fraser,Scott & McGuire,Hugh & Smith,Jeff & Winstandley,Michael: "Using the Deductive Tableau System", Chariot Software Group, 1990. • [Colon2003] Colon,Michael: "Deduct", software, not published. • [EPGY:TPE2006] Education Program for Gifted Youth (EPGY) Theorem Proving Environment – Overview, http://epgy.stanford.edu/TPE , 2006. • [Ensley2006] Ensley,Douglas & Crawley,J.Winston: "Discrete Mathematics: Mathematical Reasoning and Proof with Puzzles, Patterns, and Games", Wiley, 2006. • [JAR 32:3] Journal of Automated Reasoning, Vol.32 (2004), No.3 (February): special issue focusing on education. • [Gries1993] Gries,David & Schneider, Fred: “A Logical Approach to Discrete Math”, Springer, 1993. • [Manna1993] Manna,Zohar & Waldinger,Richard: "The Deductive Foundations of Computer Programming", Addison-Wesley, 1993.