8 research outputs found

    A Constructive Algebraic Hierarchy in Coq

    Get PDF
    AbstractWe describe a framework of algebraic structures in the proof assistant Coq. We have developed this framework as part of the FTA project in Nijmegen, in which a constructive proof of the fundamental theorem of algebra has been formalized in Coq.The algebraic hierarchy that is described here is both abstract and structured. Structures like groups and rings are part of it in an abstract way, defining e.g. a ring as a tuple consisting of a group, a binary operation and a constant that together satisfy the properties of a ring. In this way, a ring automatically inherits the group properties of the additive subgroup. The algebraic hierarchy is formalized in Coq by applying a combination of labelled record types and coercions. In the labelled record types of Coq, one can use dependent types: the type of one label may depend on another label. This allows us to give a type to a dependent-typed tuple like 〈A, f, a〉, where A is a set,f an operation on A and a an element of A. Coercions are functions that are used implicitly (they are inferred by the type checker) and allow, for example, to use the structure A:= 〈A, f, a〉 as a synonym for the carrier set A, as is often done in mathematical practice. Apart from the inheritance and reuse of properties, the algebraic hierarchy has proven very useful for reusing notations

    Logics and Type Systems

    Get PDF
    from the last declaration in \Delta (which is p:'). (oe-E) In fact the ([\Theta]) is not exactly the ([\Theta]) that is found by induction. Possibly some of the free variables in ([\Theta]) are renamed. What happens is the following: 1. Consider the proof-context \Delta 1 ] \Delta 2 and especially the renaming of the declared variables in \Delta 2 that has been caused by the operation ]. 2. Rename the free proof-variables in ([\Theta]) accordingly, obtaining say, ([\Theta 0 ]). 3. Apply ([\Sigma]) to ([\Theta 0 ]). (There will in practice be no confusion if we just write ([\Theta]) instead.) Of course the intended meaning is that the judgement below the double lines is derivable if the judgement above the lines is. This will be proved later in Theorem 3.2.8. It should be clear at this point however that there is a one-to-one correspondence between the occurrences of ' as a (non-discharged) premise in the deduction and declarations p:' in \Delta. Notation. If for \Sigma a deducti..

    Skeleton for the Proof development leading to the Fundamental Theorem of Algebra

    No full text
    elation is tight if its negation is the equality, i.e. :(a # b) $ a = b for all a; b. Fact 1.2 The negation of an apartness relation on S is an equivalence relation on S which is stable, i.e. :::(a # b) ! :(a # b). Lemma 1.3 A tight apartness relation respects the equality, i.e. a # b ^ b = b 0 ! a # b 0 for all a; b; b 0 : Proof If a # b, then a # b 0 _ b # b 0 . The latter is false, because b = b 0&lt
    corecore