## Induction Proofs with Partial Functions (1998)

### Cached

### Download Links

- [www.inferenzsysteme.informatik.tu-darmstadt.de]
- DBLP

### Other Repositories/Bibliography

Venue: | Journal of Automated Reasoning |

Citations: | 5 - 4 self |

### BibTeX

@TECHREPORT{Giesl98inductionproofs,

author = {Jürgen Giesl},

title = {Induction Proofs with Partial Functions},

institution = {Journal of Automated Reasoning},

year = {1998}

}

### OpenURL

### Abstract

In this paper we present a method for automated induction proofs about partial functions. We show that most well-known techniques developed for (explicit) induction theorem proving are unsound when dealing with partial functions. But surprisingly, by slightly restricting the application of these techniques, it is possible to develop a calculus for automated induction proofs with partial functions. In particular, under certain conditions one may even generate induction schemes from the recursions of non-terminating algorithms. The need for such induction schemes and the power of our calculus have been demonstrated on a large collection of non-trivial theorems (including Knuth and Bendix' critical pair lemma). In this way, existing induction theorem provers can be directly extended to partial functions without major changes of their logical framework.

### Citations

686 |
Introduction to Metamathematics
- Kleene
- 1952
(Show Context)
Citation Context ...roaches formulas still are either true or false (e.g., by considering all atomic formulas containing undefined terms as false, cf. [21]). But one may also use a formalization with a threevalued logic =-=[48], where th-=-e truth value of formulas depending on undefined terms is "undefined". See [46, 47] for a mechanization of this last approach and for a discussion of other alternatives. The other main possi... |

530 |
A computational logic
- Boyer, Moore
- 1979
(Show Context)
Citation Context ... for the verification of functional programs. For that reason, several techniques 1 have been developed to compute suitable induction relations and to perform induction proofs automatically, cf. e.g. =-=[6, 17, 42, 75, 79]-=-. However, most of these approaches are only sound if all occurring functions are total. In this paper we show that by slightly modifying the prerequisites of these techniques it is nevertheless possi... |

453 | Termination of rewriting
- Dershowitz
- 1985
(Show Context)
Citation Context ...hat purpose the termination behaviour of the algorithms under consideration is analyzed. While most work on automated termination proofs has been done for term rewriting systems (for surveys see e.g. =-=[20, 73]-=-) and logic programs (e.g. [19, 64, 74]), only a few methods have been developed for functional programs (e.g. [6, 24, 25, 26, 76]). These approaches aim to prove that an algorithm terminates for each... |

364 |
Confluent reductions: Abstract properties and applications to term rewriting systems: Abstract properties and applications to term rewriting systems
- Huet
- 1980
(Show Context)
Citation Context ...n oe which instantiates all variables of s 1 with constructor ground terms. Then we say that a ground term t evaluatessto t 0 iff t ! R op t 0 holds. Note that R op is orthogonal and hence, confluent =-=[34]-=- (where in fact, R op 's confluence already follows from innermost confluence, and thus, from the fact that the rules are nonoverlapping) . Thus, every ground term can evaluate to at most one construc... |

346 | Recursive functions of symbolic expressions and their computation by machine (Part I
- McCarthy
- 1960
(Show Context)
Citation Context ...= s(r); z := 0; while neq(x; z) do x := p(x); z := s(z) od 9 ? = ? ; sets x to x 2 fi od To translate this program into a functional one, every while-loop is transformed into a separate function, cf. =-=[56]-=-. So for the inner whileloop we obtain a function mean which takes the input values of x and z as arguments. If the loop-condition is satisfied (i.e., if neq(x; z) is true), then mean is called recurs... |

273 |
An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types
- Goguen, Thatcher, et al.
- 1978
(Show Context)
Citation Context ...Our definition of "truth" is equivalent to validity in the initial model of the defining equations Eq, i.e., it corresponds to the notion of inductive truth generally used in the literature,=-= cf. e.g. [4, 30, 75, 77, 79]-=-. So for the truth of a formula '(x ) we have to verify infinitely many instantiations '(q ). But as data types are constructed inductively, this can often be reduced to a finite proof by using induct... |

175 |
On the structure of abstract algebras
- Birkhoff
- 1935
(Show Context)
Citation Context ...tial model is also a model of Ax data . The reason is that for all ground terms t and s , validity of c(t ) = c(s ) in the initial model implies Eqjoinability of c(t ) and c(s ) by Birkhoff's Theorem =-=[3]-=- and by the confluence of Eq (regarded as a term rewrite system). But as Eq is a constructor system, this implies that for all i, t i = s i is valid in the initial model, too. Similarly, c1 (t ) = c2 ... |

162 | A.: Rippling: A Heuristic for Guiding Inductive Proofs
- Bundy, Stevens, et al.
- 1993
(Show Context)
Citation Context ... for the verification of functional programs. For that reason, several techniques 1 have been developed to compute suitable induction relations and to perform induction proofs automatically, cf. e.g. =-=[6, 17, 42, 75, 79]-=-. However, most of these approaches are only sound if all occurring functions are total. In this paper we show that by slightly modifying the prerequisites of these techniques it is nevertheless possi... |

138 |
Termination of logic programs: The never-ending story
- Schreye, Decorte
- 1994
(Show Context)
Citation Context ...ur of the algorithms under consideration is analyzed. While most work on automated termination proofs has been done for term rewriting systems (for surveys see e.g. [20, 73]) and logic programs (e.g. =-=[19, 64, 74]-=-), only a few methods have been developed for functional programs (e.g. [6, 24, 25, 26, 76]). These approaches aim to prove that an algorithm terminates for each input. However, together with J. Braub... |

136 |
Isabelle: A Generic Theorem
- Paulson
- 1994
(Show Context)
Citation Context ...ble formulas) [62, p. 70]. Moreover, a full formalization of denotational semantics requires a higher order logic (as it is for instance used in lcf [31, 62] and its descendants hol [32] and isabelle =-=[63]-=-). Of course, compared to provers working on a first order language, these systems are much more expressive, but in general, higher order logics often raise harder problems for automation [5]. For tha... |

126 |
The Oyster-Clam system
- Bundy, Harmelen, et al.
- 1990
(Show Context)
Citation Context ...s which correspond to the recursions of algorithms occurring in the conjecture [6, 15, 75, 79]. This approach is not only used in most (explicit) induction provers (e.g. nqthm [6], rrl [41, 79], clam =-=[16, 17]-=-, inka [36, 75]), but it has also been implemented in systems like hol, isabelle, and lambda, cf. [5, 18, 72]. This may indicate that even in provers for higher order logics, Noetherian induction on t... |

92 |
Abstract Data Types and the Development of Data Structures
- Guttag
- 1977
(Show Context)
Citation Context ...ords, the corresponding term rewriting system R op terminates and every non-constructor ground term is R op -reducible. Due to the special form of R op , this is equivalent to sufficient completeness =-=[33]-=- (i.e., to the requirement that for every ground term t there exists a constructor ground term q with t $ R op q). As every ground term evaluates to a (unique) constructor ground term, all algorithms ... |

87 |
Edinburgh LCF: A Mechanised Logic
- Gordon, Milner, et al.
- 1979
(Show Context)
Citation Context ... for admissibility (which still reject many admissible formulas) [62, p. 70]. Moreover, a full formalization of denotational semantics requires a higher order logic (as it is for instance used in lcf =-=[31, 62]-=- and its descendants hol [32] and isabelle [63]). Of course, compared to provers working on a first order language, these systems are much more expressive, but in general, higher order logics often ra... |

80 |
Proofs by induction in equational theories with constructors," J. of Computer and System Sciences 25, 239--266. (Previous version
- Huet, Hullot
- 1982
(Show Context)
Citation Context ...ion base and step formulas are constructed. But there has also been a lot of work based on the implicit induction principle (also called "proof by consistency" or "inductionless inducti=-=on"), cf. e.g. [2, 4, 35, 37, 38, 40, 65]-=-. However, these approaches are also restricted to terminating functions (i.e., the specification has to be given by a terminating term rewriting system). Then the rewrite ordering of this system is i... |

74 |
A Partial Functions Version of Church’s Simple Theory of Types
- Farmer
- 1990
(Show Context)
Citation Context ...d), although the algorithm for minus provides no evidence for this conjecture. Hence, many authors advocate that it is preferable to keep partial functions instead of their total extensions, cf. e.g. =-=[1, 21, 46, 47, 51, 77]-=-. Moreover, to transform partial functions f into total extensions f 0 one has to construct f 's domain predicate. However, for many algorithms with nested or mutual recursion, the generation of domai... |

73 |
Termination Proofs for Logic Programs
- Plümer
(Show Context)
Citation Context ...ur of the algorithms under consideration is analyzed. While most work on automated termination proofs has been done for term rewriting systems (for surveys see e.g. [20, 73]) and logic programs (e.g. =-=[19, 64, 74]-=-), only a few methods have been developed for functional programs (e.g. [6, 24, 25, 26, 76]). These approaches aim to prove that an algorithm terminates for each input. However, together with J. Braub... |

70 |
The Foundations of Program Verification
- Loeckx, Sieber
- 1984
(Show Context)
Citation Context ...7) are partially true and hence, minus and quot are partially correct w.r.t. these formulas. This notion of partial truth resp. of partial correctness is widely used in program verification, cf. e.g. =-=[52, 54]-=-. If a conjecture only contains terminating and completely defined algorithms, then partial truth coincides with the notion of truth introduced in Section 2. A model theoretic characterization of part... |

69 | Context-sensitive computations in functional and functional logic programs
- Lucas
- 1998
(Show Context)
Citation Context ...finite R op -reductions. To avoid unnecessary infinite reductions, we have to use a context-sensitive rewriting strategy where reductions may never take place in the second or third argument of an if =-=[29, 53]. Let &quo-=-t;! R op ;if " denote this restricted rewrite relation. Now we say that a ground term ibn-98-48.tex; 4/01/2000; 17:21; no v.; p.13 14 JsURGEN GIESL t evaluates to another ground term t 0 iff t ! ... |

64 | An overview of Rewrite Rule Laboratory (RRL
- Kapur, Zhang
- 1995
(Show Context)
Citation Context ...choose relations which correspond to the recursions of algorithms occurring in the conjecture [6, 15, 75, 79]. This approach is not only used in most (explicit) induction provers (e.g. nqthm [6], rrl =-=[41, 79]-=-, clam [16, 17], inka [36, 75]), but it has also been implemented in systems like hol, isabelle, and lambda, cf. [5, 18, 72]. This may indicate that even in provers for higher order logics, Noetherian... |

61 | Implicit induction in conditional theories
- Bouhoula, Rusinowitch
- 1995
(Show Context)
Citation Context ...armstadt, Germany. Final version to appear in the Journal of Automated Reasoning. 1 There are two research paradigms for the automation of induction proofs, viz. explicit and implicit induction (e.g. =-=[4, 40]-=-), where we only focus on the first one. 2 JsURGEN GIESL partial functions. We first regard algorithms defined by unconditional equations only, but in Section 4 we show how to extend our calculus to h... |

49 |
Proof by consistency in equational theories
- Bachmair
- 1988
(Show Context)
Citation Context ...ion base and step formulas are constructed. But there has also been a lot of work based on the implicit induction principle (also called "proof by consistency" or "inductionless inducti=-=on"), cf. e.g. [2, 4, 35, 37, 38, 40, 65]-=-. However, these approaches are also restricted to terminating functions (i.e., the specification has to be given by a terminating term rewriting system). Then the rewrite ordering of this system is i... |

45 |
Proof by consistency
- Kapur, Musser
- 1987
(Show Context)
Citation Context ...armstadt, Germany. Final version to appear in the Journal of Automated Reasoning. 1 There are two research paradigms for the automation of induction proofs, viz. explicit and implicit induction (e.g. =-=[4, 40]-=-), where we only focus on the first one. 2 JsURGEN GIESL partial functions. We first regard algorithms defined by unconditional equations only, but in Section 4 we show how to extend our calculus to h... |

43 |
Introduction to HOL: a theorem-proving environment for higher-order logic
- Gordon, Melham
- 1993
(Show Context)
Citation Context ...eject many admissible formulas) [62, p. 70]. Moreover, a full formalization of denotational semantics requires a higher order logic (as it is for instance used in lcf [31, 62] and its descendants hol =-=[32]-=- and isabelle [63]). Of course, compared to provers working on a first order language, these systems are much more expressive, but in general, higher order logics often raise harder problems for autom... |

42 |
Term rewriting induction
- Reddy
- 1990
(Show Context)
Citation Context ...ion base and step formulas are constructed. But there has also been a lot of work based on the implicit induction principle (also called "proof by consistency" or "inductionless inducti=-=on"), cf. e.g. [2, 4, 35, 37, 38, 40, 65]-=-. However, these approaches are also restricted to terminating functions (i.e., the specification has to be given by a terminating term rewriting system). Then the rewrite ordering of this system is i... |

41 | INKA: the next generation
- Hutter, Sengler
- 1996
(Show Context)
Citation Context ...or functions like unifies where automated termination proofs fail) were used for about 40 % of the conjectures considered. We experimented with mechanized support by the induction theorem prover inka =-=[36, 75]-=-, but we did not modify its implementation in a significant way. (Essentially, the only modification needed for the calculus of Section 5 was to trace all applications of induction, symbolic evaluatio... |

40 |
Logic and Computation
- Paulson
- 1982
(Show Context)
Citation Context ... for admissibility (which still reject many admissible formulas) [62, p. 70]. Moreover, a full formalization of denotational semantics requires a higher order logic (as it is for instance used in lcf =-=[31, 62]-=- and its descendants hol [32] and isabelle [63]). Of course, compared to provers working on a first order language, these systems are much more expressive, but in general, higher order logics often ra... |

39 | Termination of nested and mutually recursive algorithms
- Giesl
- 1997
(Show Context)
Citation Context ...ermination proofs has been done for term rewriting systems (for surveys see e.g. [20, 73]) and logic programs (e.g. [19, 64, 74]), only a few methods have been developed for functional programs (e.g. =-=[6, 24, 25, 26, 76]-=-). These approaches aim to prove that an algorithm terminates for each input. However, together with J. Brauburger we developed a technique to adapt these methods for automated termination analysis of... |

39 | More Church-Rosser proofs (in Isabelle/HOL
- Nipkow
(Show Context)
Citation Context ...tial functions proved with our calculus see [27]. 12 Thus, our proof differs substantially from other case studies in related areas (e.g., the proofs of the Church-Rosser theorem for the -calculus in =-=[59, 69]-=-). ibn-98-48.tex; 4/01/2000; 17:21; no v.; p.38 INDUCTION PROOFS WITH PARTIAL FUNCTIONS 39 Note that apart from reasoning about given partial functions, our approach is also required for program schem... |

34 |
Deductive Synthesis of the Unification Algorithm
- Manna, Waldinger
- 1981
(Show Context)
Citation Context ... returns true whenever the termlists l and k are unifiable. is subst(oe)sapply(oe; l) = apply(oe; k) ) unifies(l; k) (46) In contrast to previous correctness proofs of the unification algorithm (e.g. =-=[55, 61]-=-), our calculi can prove the partial truth of (46) by induction w.r.t. unifies without having to verify its termination, cf. [27]. Indeed, this proof is already possible with the calculus from Section... |

31 |
The addition of bounded quantification and partial functions to a computational logic and its theorem prover
- Boyer, Moore
(Show Context)
Citation Context ...on proofs, an induction on the values of the program variables is preferable, since "fixpoint induction definitely seems more painful and less intuitive to use" [7, p. 3] (cf. also the discu=-=ssions in [6, 10, 57]-=-). Thus, even in systems like lcf where fixpoint induction forms the basis of the underlying calculus, one immediately derives rules for structural induction, which are usually much better suited for ... |

31 | Termination analysis for functional programs using term orderings
- Giesl
- 1995
(Show Context)
Citation Context ...ermination proofs has been done for term rewriting systems (for surveys see e.g. [20, 73]) and logic programs (e.g. [19, 64, 74]), only a few methods have been developed for functional programs (e.g. =-=[6, 24, 25, 26, 76]-=-). These approaches aim to prove that an algorithm terminates for each input. However, together with J. Brauburger we developed a technique to adapt these methods for automated termination analysis of... |

28 | M.: A mechanization of strong Kleene logic for partial functions
- Kerber, Kohlhase
- 1994
(Show Context)
Citation Context ...d), although the algorithm for minus provides no evidence for this conjecture. Hence, many authors advocate that it is preferable to keep partial functions instead of their total extensions, cf. e.g. =-=[1, 21, 46, 47, 51, 77]-=-. Moreover, to transform partial functions f into total extensions f 0 one has to construct f 's domain predicate. However, for many algorithms with nested or mutual recursion, the generation of domai... |

26 | A rational reconstruction and extension of recursion analysis
- Bundy, Harmelen, et al.
- 1989
(Show Context)
Citation Context ... from ' (otherwise the variables have to be renamed). The technique of performing inductions w.r.t. the recursions of algorithms (like plus) is commonly applied in induction theorem proving, cf. e.g. =-=[6, 15, 75, 79]-=-. However, induction proofs are only sound if the induction relation used is well founded (i.e., if there exists no infinite descending chain t 1st 2s: : : w.r.t. the induction relation ). Here, the w... |

25 | Transforming context-sensitive rewrite systems
- Giesl, Middeldorp
- 1999
(Show Context)
Citation Context ...finite R op -reductions. To avoid unnecessary infinite reductions, we have to use a context-sensitive rewriting strategy where reductions may never take place in the second or third argument of an if =-=[29, 53]. Let &quo-=-t;! R op ;if " denote this restricted rewrite relation. Now we say that a ground term ibn-98-48.tex; 4/01/2000; 17:21; no v.; p.13 14 JsURGEN GIESL t evaluates to another ground term t 0 iff t ! ... |

23 | M.: New uses of linear arithmetic in automated theorem proving by induction
- Kapur, Subramaniam
- 1996
(Show Context)
Citation Context ... for the verification of functional programs. For that reason, several techniques 1 have been developed to compute suitable induction relations and to perform induction proofs automatically, cf. e.g. =-=[6, 17, 42, 75, 79]-=-. However, most of these approaches are only sound if all occurring functions are total. In this paper we show that by slightly modifying the prerequisites of these techniques it is nevertheless possi... |

14 |
Subgoal induction
- Wegbreit
- 1977
(Show Context)
Citation Context ...on proofs, an induction on the values of the program variables is preferable, since "fixpoint induction definitely seems more painful and less intuitive to use" [7, p. 3] (cf. also the discu=-=ssions in [6, 10, 57]-=-). Thus, even in systems like lcf where fixpoint induction forms the basis of the underlying calculus, one immediately derives rules for structural induction, which are usually much better suited for ... |

13 | Conditional Equational Specifications of Data Types with Partial Operations for Inductive Theorem
- Kühler, Wirth
- 1997
(Show Context)
Citation Context ...d), although the algorithm for minus provides no evidence for this conjecture. Hence, many authors advocate that it is preferable to keep partial functions instead of their total extensions, cf. e.g. =-=[1, 21, 46, 47, 51, 77]-=-. Moreover, to transform partial functions f into total extensions f 0 one has to construct f 's domain predicate. However, for many algorithms with nested or mutual recursion, the generation of domai... |

12 | A Mechanical Proof of the Turing Completeness of Pure Lisp
- Boyer, Moore
- 1984
(Show Context)
Citation Context .... One approach is to transform every partial function f(x) into a total one f 0 (x; n) which operates like f , but which decreases the bound n in each recursive call and terminates if n = 0, cf. e.g. =-=[9]-=-. However, a drawback is that for theorems containing several occurrences of f one now has to deal with existential quantifiers (or to guess suitable instantiations of the bound variable n). For examp... |

11 | Termination Analysis for Partial Functions
- Brauburger, Giesl
- 1145
(Show Context)
Citation Context ...to prove that an algorithm terminates for each input. However, together with J. Brauburger we developed a technique to adapt these methods for automated termination analysis of partial functions, cf. =-=[11, 12, 13, 28]-=-. A first approach to generate a domain predicate ` div would be to replace the results of div's non-recursive cases by true and to replace div's recursive call by a corresponding call of ` div . func... |

11 |
Induction using term orderings
- Bronsard, Reddy, et al.
- 1994
(Show Context)
Citation Context ... terms and termlists) is that this formalization simplifies the proofs considerably. Techniques for automated reasoning about mutually recursive data types and algorithms can for instance be found in =-=[4, 14, 26, 43]. ibn-98-4-=-8.tex; 4/01/2000; 17:21; no v.; p.36 INDUCTION PROOFS WITH PARTIAL FUNCTIONS 37 "hvariable, term, variable, term, . . . i". Then is subst(oe) checks whether oe is a termlist of this form, ap... |

11 |
Proof by induction using test sets
- Kapur, Narendran, et al.
- 1986
(Show Context)
Citation Context ... : : : ; t 0 m is non-overlapping and complete, i.e., for every tuple of data objects q there exists a pattern t i or t 0 j such that q = oe(t i ) or q = oe(t 0 j ) for some substitution oe, cf. e.g. =-=[38]-=-. 8 Thus, the definition of a domain predicate ` f should contain the equation ` f (t 0 ) = false for all missing patterns t 0 . In our example, this results in the additional defining equation ` div ... |

11 | The use of sorts in algebraic specifications
- Mosses
- 1991
(Show Context)
Citation Context ...ty into the logic itself. In algebraic specifications, partiality is often modelled by partial algebras and different appropriate semantics of equality have been suggested in that framework (see e.g. =-=[58, 66] for an ov-=-erview and alternatives). For example, our notion of partial truth corresponds to validity in the initial partial model of the specification with a "weak equality" semantics, cf. [50]. Here,... |

10 | Termination analysis by inductive evaluation
- Brauburger, Giesl
- 1998
(Show Context)
Citation Context ...to prove that an algorithm terminates for each input. However, together with J. Brauburger we developed a technique to adapt these methods for automated termination analysis of partial functions, cf. =-=[11, 12, 13, 28]-=-. A first approach to generate a domain predicate ` div would be to replace the results of div's non-recursive cases by true and to replace div's recursive call by a corresponding call of ` div . func... |

10 |
Partial functions in a total setting
- Finn, Fourman, et al.
- 1997
(Show Context)
Citation Context ... checks. For a further discussion on the differences between the semantics see e.g. [1, 39, 77]. Finally, there are also suggestions to deal with partial functions in a total higher order logic, e.g. =-=[22]-=-. In this approach partial functions are regarded as total functions whose behaviour is only specified on the intended domain and which return an arbitrary value if applied to other arguments. To defi... |

10 | Automated termination proofs with measure functions
- Giesl
- 1995
(Show Context)
Citation Context ...ermination proofs has been done for term rewriting systems (for surveys see e.g. [20, 73]) and logic programs (e.g. [19, 64, 74]), only a few methods have been developed for functional programs (e.g. =-=[6, 24, 25, 26, 76]-=-). These approaches aim to prove that an algorithm terminates for each input. However, together with J. Brauburger we developed a technique to adapt these methods for automated termination analysis of... |

10 |
Inductive reasoning with incomplete specifications
- Kapur, Musser
- 1986
(Show Context)
Citation Context ...focus on determining suitable induction relations automatically (by deriving them from the recursions of the algorithms). An alternative notion of truth has been proposed by D. Kapur and D. R. Musser =-=[39, 40]-=- and a corresponding definition is also used by C. Walther in [75]. Here, an equation is considered to be inductively true if it holds in the intersection of all maximal congruence relations satisfyin... |

9 |
Automating Induction over Mutually Recursive Functions
- Kapur, Subramaniam
- 1996
(Show Context)
Citation Context ...n particular, its termination) can also be proved within the calculus. However, while termination of plus can indeed be verified, a similar conjecture for div, viz. def(x; y)s:y = 0 ) def(div(x; y)); =-=(43)-=- is problematic for the calculus. The reason is that here we would need an induction w.r.t. the recursions of div. But this induction cannot be done using Rule 1 00 , because we cannot prove the corre... |

9 | Constructors can be partial too
- Kapur
- 1997
(Show Context)
Citation Context ...lations between constructors are often not orthogonal. Therefore, in contrast to [42, 79], we only considered freely constructed data types and we modelled conditions with the special function if. In =-=[44]-=-, Kapur introduces an interesting extension of the cover set technique to data types with partial constructors and he uses so-called applicability conditions to describe the intended domains of the fu... |

9 | Verifying the Unification Algorithm in LCF
- Paulson
- 1985
(Show Context)
Citation Context ... important total algorithms where totality cannot be verified automatically. For example, the well-known unification algorithm by J. A. Robinson [67] is total, but its termination is a "deep theo=-=rem" [61]-=- and none of the current methods for automated termination analysis succeeds with this example. Hence, such functions cannot be handled by (fully) automated theorem provers without the ability of reas... |

8 |
A tableau calculus for partial functions. Collegium Logicum
- Kerber, Kohlhase
- 1996
(Show Context)
Citation Context |