Structural induction proves a property of every recursively generated object by checking the initial objects and showing that every construction rule preserves the property.
For an admissible predicate on lazy lists P, prove P(⊥) and P([]), and prove P(xs)⇒P(x:xs) for every possibly partial head x. Constructor induction then establishes P on every finite partial approximation, and admissibility extends it to limits, including infinite lists. Without the bottom value case and the limit condition, ordinary finite structural induction does not justify a claim about infinite data.[ref]
https://ethz.ch/content/dam/ethz/special-interest/infk/inst-infsec/information-security-group-dam/people/andreloc/lochbihler14itps.pdf. Recursive Functions on Lazy Lists, ITP 2014 presentation, slide 7: admissibility restriction on induction over lazy lists
A predicate on possibly partial lists is admissible when it holds at the limit of every increasing chain of finite approximations on which it holds. Increasing here means replacing a bottom value by more defined information while retaining already defined constructors and values. This closure condition permits a property established for finite approximations to pass to an infinite list. The predicate “the list is finite” lacks this closure: every finite prefix ending in an undefined tail is finite in extent, but their limit may have infinitely many constructors.
Ancestors (5)
Incoming links (125)
- Balanced parentheses in propositional syntax
- Binary tree
- Capture-safe equality replacement
- Compilation arithmetic example
- Constant folding
- Decorator pattern
- Destructive binary search tree flattening
- Fold factorisation criterion
- Interpreter arithmetic trace
- Left-fold fusion law
- Linear flattening of a binary tree
- Minimum vertex cover of a tree
- Natural-number fold fusion law
- Null child slot count
- One-preserving Boolean function
- Past exam of the analytic topology and axiomatic set theory course of the University of Oxford / 2009 / B / 6 / ii / Solution
- Past exam of the axiomatic set theory course of the University of Oxford / 2011 / 2 / b / Solution
- Past exam of the computer science course of the University of Oxford / 2015 / Lambda calculus and types / 1 / d / Solution
- Past exam of the computer science course of the University of Oxford / 2015 / Lambda calculus and types / 2 / d / Solution
- Past exam of the computer science course of the University of Oxford / 2015 / Lambda calculus and types / 3 / b / Solution
- Past exam of the computer science course of the University of Oxford / 2015 / Lambda calculus and types / 3 / c / Solution
- Past exam of the computer science course of the University of Oxford / 2018 / Algorithms / 2 / c / Solution
- Past exam of the logic and set theory course of the University of Oxford / 2007 / A / 1 / i / Solution
- Past exam of the logic and set theory course of the University of Oxford / 2008 / A / 1 / b / Solution
- Past exam of the logic and set theory course of the University of Oxford / 2008 / A / 1 / f / Solution
- Past exam of the logic and set theory course of the University of Oxford / 2008 / A / 2 / b / Solution
- Past exam of the logic and set theory course of the University of Oxford / 2008 / A / 4 / a / Solution
- Past exam of the logic and set theory course of the University of Oxford / 2009 / A / 1 / d / Solution
- Past exam of the logic and set theory course of the University of Oxford / 2010 / A / 1 / b / iv / Solution
- Past exam of the logic and set theory course of the University of Oxford / 2010 / A / 1 / d / i / Solution
- Past exam of the logic and set theory course of the University of Oxford / 2011 / A / 1 / c / iv / Solution
- Past exam of the mathematics course of the University of Cambridge / 2002 / iii / Paper 76 / 1 / Solution
- Past exam of the mathematics course of the University of Cambridge / 2002 / iii / Paper 76 / 8 / Solution
- Past exam of the mathematics course of the University of Cambridge / 2005 / iii / Paper 27 / 5 / Solution
- Past exam of the mathematics course of the University of Cambridge / 2006 / ia / Paper 5 / 5 / b / Solution
- Past exam of the mathematics course of the University of Cambridge / 2007 / ia / Paper 5 / 10 / b / Solution
- Past exam of the mathematics course of the University of Cambridge / 2007 / ia / Paper 5 / 1 / a / Solution
- Past exam of the mathematics course of the University of Cambridge / 2007 / ia / Paper 5 / 5 / a / i / Solution
- Past exam of the mathematics course of the University of Cambridge / 2007 / ia / Paper 5 / 6 / b / Solution
- Past exam of the mathematics course of the University of Cambridge / 2007 / ia / Paper 5 / 6 / d / Solution
- Past exam of the mathematics course of the University of Cambridge / 2007 / iii / Paper 26 / 5 / Solution
- Past exam of the mathematics course of the University of Cambridge / 2010 / iii / Paper 20 / 1 / Solution
- Past exam of the mathematics course of the University of Cambridge / 2010 / iii / Paper 20 / 3 / Solution
- Past exam of the mathematics course of the University of Cambridge / 2017 / iii / Paper 135 / 5 / Solution
- Past exam of the mathematics course of the University of Cambridge / 2017 / iii / Paper 135 / 6 / Solution
- Past exam of the mathematics course of the University of Cambridge / 2018 / iii / Paper 135 / 1 / Solution
- Past exam of the mathematics course of the University of Cambridge / 2019 / ii / Paper 1 / 16I / Solution
- Past exam of the mathematics course of the University of Cambridge / 2021 / ii / Paper 1 / 12F / iii / Solution
- Past exam of the mathematics course of the University of Cambridge / 2023 / iii / Paper 124 / 5 / ii / Solution
- Past exam of the model theory and Gödel's incompleteness theorems course of the University of Oxford / 2010 / B / 6 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2003 / Calculus, probability, linear algebra, discrete mathematics, logic and proof, and models of computation / 10 / a / i / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2003 / Functional programming, data structures and algorithms, procedural programming, and digital hardware / 1 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2003 / Functional programming, data structures and algorithms, procedural programming, and digital hardware / 7 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2013 / Functional programming, design and analysis of algorithms / 2 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2013 / Functional programming, design and analysis of algorithms / 2 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2013 / Functional programming, design and analysis of algorithms / 4 / d / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2013 / Functional programming, design and analysis of algorithms / 4 / g / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2014 / Functional programming, design and analysis of algorithms / 1 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2014 / Functional programming, design and analysis of algorithms / 1 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2014 / Functional programming, design and analysis of algorithms / 1 / f / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2014 / Functional programming, design and analysis of algorithms / 2 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2014 / Functional programming, design and analysis of algorithms / 3 / d / ii / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2014 / Functional programming, design and analysis of algorithms / 4 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Functional programming, design and analysis of algorithms / 1 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Functional programming, design and analysis of algorithms / 2 / c / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Functional programming, design and analysis of algorithms / 3 / d / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Functional programming, design and analysis of algorithms / 6 / e / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Imperative programming / 1 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Imperative programming / 1 / e / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Imperative programming (resit) / 1 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Imperative programming (resit) / 1 / c / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Imperative programming (resit) / 1 / d / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2015 / Imperative programming (resit) / 8 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2016 / Functional programming, design and analysis of algorithms / 1 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2016 / Functional programming, design and analysis of algorithms / 1 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2016 / Functional programming, design and analysis of algorithms / 2 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2016 / Functional programming, design and analysis of algorithms / 3 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2016 / Functional programming, design and analysis of algorithms / 4 / b / ii / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2016 / Functional programming, design and analysis of algorithms / 5 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2016 / Functional programming, design and analysis of algorithms (resit) / 1 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2016 / Imperative programming / 3 / d / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2017 / Functional programming, design and analysis of algorithms / 3 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2017 / Functional programming, design and analysis of algorithms / 4 / d / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2018 / Functional programming, design and analysis of algorithms / 1 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2018 / Functional programming, design and analysis of algorithms / 1 / c / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2018 / Functional programming, design and analysis of algorithms / 1 / e / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2018 / Functional programming, design and analysis of algorithms / 3 / d / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2018 / Functional programming, design and analysis of algorithms / 3 / g / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2018 / Imperative programming / 5 / c / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2018 / Imperative programming / 5 / d / ii / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2019 / Functional programming, design and analysis of algorithms / 1 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2019 / Functional programming, design and analysis of algorithms / 1 / g / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2019 / Functional programming, design and analysis of algorithms / 2 / c / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2019 / Functional programming, design and analysis of algorithms / 2 / d / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2019 / Imperative programming resit / 4 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2021 / Digital systems, linear algebra, introduction to formal proof / 3 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2021 / Functional programming, design and analysis of algorithms (resit) / 1 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2021 / Functional programming, design and analysis of algorithms (resit) / 1 / f / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2022 / Digital systems, linear algebra, introduction to formal proof / 7 / c / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2022 / Digital systems, linear algebra, introduction to formal proof resit / 1 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2022 / Functional programming, design and analysis of algorithms (resit) / 1 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2022 / Functional programming, design and analysis of algorithms (resit) / 1 / c / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2022 / Functional programming, design and analysis of algorithms (resit) / 2 / g / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2022 / Functional programming, design and analysis of algorithms (resit) / 2 / h / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2022 / Functional programming, design and analysis of algorithms (resit) / 3 / a / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2022 / Functional programming, design and analysis of algorithms (resit) / 3 / e / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2022 / Functional programming, design and analysis of algorithms (resit) / 4 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2023 / Digital systems, linear algebra and introduction to formal proof / 7 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2023 / Functional programming, design and analysis of algorithms / 1 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2023 / Functional programming, design and analysis of algorithms / 4 / b / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2023 / Functional programming, design and analysis of algorithms / 4 / d / Solution
- Past exam of the year 1 of the computer science course of the University of Oxford / 2023 / Imperative programming / 7 / c / Solution
- Perfect rose tree
- Predicate prefix-suffix reconstruction
- Prefix-freeness of fully parenthesized formulas
- Right-fold fusion law
- Singleton truth-preservation obstruction to expressive completeness
- Structural induction on lazy lists
- Structural recursion
- Structure isomorphism
- Syntax tree of a formula
- Tree fold
- Truth lemma for a Henkin term model
- Type safety
- Unique readability theorem
Discussion (0) New discussion
There are no discussions about this article yet.
Articles by others on the same topic (1)
Structural induction is a mathematical and logical proof technique used primarily in computer science and mathematics to prove properties about recursively defined structures, such as trees, lists, or other data types. It is analogous to mathematical induction but is specifically tailored for objects that are constructed in a recursive manner.