
Interactive Theorem Proving in Software Verification
Inquiry Framework
Question Framework
Driving Question
The overarching question that guides the entire project.How can the principles of propositional and predicate logic, along with automata and formal languages, be integrated to employ formal methods and theorem proving in enhancing software verification processes?Essential Questions
Supporting questions that break down major concepts.- What are the main principles and concepts of propositional and predicate logic that are essential for understanding theorem provers?
- How do automata and formal languages contribute to the field of software verification and theorem proving?
- In what ways do formal methods improve the software development lifecycle?
- How can the concepts learned in formal modelling and specification be applied to real-world software verification problems?
- What role does decidability play in the context of formal methods and theorem proving?
Standards & Learning Goals
Learning Goals
By the end of this project, students will be able to:- Students will be able to apply principles of propositional and predicate logic in the process of software verification using theorem proving.
- Students will learn to integrate knowledge of automata and formal languages into the development and verification of software solutions.
- Individuals will explore the improvement of software development processes via the application of formal methods.
- Learners will identify and solve real-world software verification problems by applying formal modeling and specification techniques.
- Students will analyze the role of decidability in the context of theorem proving and formal methods.
Common Core Standards
Computer Science Guidelines
Next Generation Science Standards
Entry Events
Events that will be used to introduce the project to studentsTheorem Proving Design Sprint
Coordinate a design sprint where students collaborate to develop a software application from scratch, implementing theorem proving at each stage of development to ensure correctness and interoperability. This entry event is a direct application of formal methods from their courses.Portfolio Activities
Portfolio Activities
These activities progressively build towards your learning goals, with each submission contributing to the student's final portfolio.Logic Foundations Refresher
In this activity, students review and consolidate their understanding of propositional and predicate logic, essential for theorem proving.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA set of solved logic problems and a summary report on key logic concepts.Alignment
How this activity aligns with the learning objectives & standardsSupports CCSS.MATH.CONTENT.HSA-REI.C.5 by reinforcing the understanding necessary to prove theorems.Automata and Formal Language Exploration
Students will explore the role of automata and formal languages in software verification through practical exercises.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA digital model of a finite automaton and an analysis report outlining their application in software.Alignment
How this activity aligns with the learning objectives & standardsSupports CCSS.MATH.CONTENT.HSN-Q.A.1 by using mathematical structures to guide solutions.Rubric & Reflection
Portfolio Rubric
Grading criteria for assessing the overall project portfolioInteractive Theorem Proving and Software Verification Rubric
Conceptual Understanding
Evaluation of student's ability to understand and apply core concepts of propositional and predicate logic, automata, and formal languages effectively.Propositional and Predicate Logic Mastery
Measures the depth of understanding and application of logic in theorem proving.
Exemplary
4 PointsDemonstrates sophisticated understanding of propositional and predicate logic, applying these concepts innovatively in solving complex problems.
Proficient
3 PointsShows thorough understanding of propositional and predicate logic, applying them appropriately to solve problems.
Developing
2 PointsShows emerging understanding of propositional and predicate logic with inconsistent application in problem-solving.
Beginning
1 PointsShows initial understanding of logic principles with minimal or incorrect application.
Automata and Formal Language Integration
Assesses how well students integrate knowledge of automata and formal languages within software verification.
Exemplary
4 PointsIntegrates automata and formal languages seamlessly in innovative software verification solutions.
Proficient
3 PointsEffectively integrates automata and formal languages into software verification with clear application.
Developing
2 PointsIntegrates automata and formal languages with partial success in software verification.
Beginning
1 PointsStruggles to integrate automata and formal languages within software verification processes.
Application and Innovation
Assessment of student ability to apply learned concepts to real-world scenarios and innovate within the software development process.Real-world Application and Problem Solving
Evaluates the ability to apply formal methods, modelling, and specifications to solve real-world software verification problems.
Exemplary
4 PointsApplies formal methods with innovation and effectiveness, solving complex real-world problems exemplary.
Proficient
3 PointsApplies formal methods with effective problem-solving typical of encountered verification issues.
Developing
2 PointsAttempts to apply formal methods with emerging competency, resulting in varied problem-solving effectiveness.
Beginning
1 PointsShows initial attempts to apply formal methods with limited success in addressing verification problems.
Innovative Use of Theorem Proving
Examines the innovative use of theorem proving in developing software solutions.
Exemplary
4 PointsEmploys theorem proving with exceptional creativity and depth, enhancing software solutions.
Proficient
3 PointsUses theorem proving effectively in creating robust software solutions.
Developing
2 PointsIncorporates theorem proving with basic innovation but needs further development.
Beginning
1 PointsBarely implements theorem proving in software solutions, requiring foundational enhancement.
Collaboration and Communication
Evaluates student interaction, communication, and teamwork in collaborative software development settings.Team Collaboration
Measures effectiveness of collaboration in group activities such as design sprints.
Exemplary
4 PointsExhibits leadership and fosters a highly collaborative and productive team environment.
Proficient
3 PointsWorks effectively within a team, contributing valuable input and support.
Developing
2 PointsParticipates in team activities with occasional contributions, requiring prompting.
Beginning
1 PointsReluctantly participates in team settings, requiring significant support and encouragement.