© The Author(s), under exclusive license to APress Media, LLC, part of Springer Nature 2023
B. SitnikovskiIntroduction to Dependent Types with Idrishttps://doi.org/10.1007/978-1-4842-9259-4_1

1. Formal Systems

Boro Sitnikovski1  
(1)
Skopje, North Macedonia
 

Before you can construct proofs of correctness for software, you need to understand what a proof is and what it means for a proof to be valid. This is the role of formal systems. The purpose of formal systems is to let you reason about reasoning—to manipulate logical proofs in terms of their form, rather than their content. This level of abstraction makes formal systems powerful tools.

A figure illustrates ...

Get Introduction to Dependent Types with Idris: Encoding Program Proofs in Types now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.