[Agda] Formalization of Linear Algebra in agda

Sergei Meshveliani mechvel at botik.ru
Thu Jun 30 13:06:51 CEST 2016


On Tue, 2016-06-28 at 15:27 -0300, Guillermo Calderon wrote:

> Dear all,
>
> I am looking for a formalization  in Agda of vectorial spaces (over a 
> field).
> My concern is to work in the formalization of some concepts involved 
> with Grassman and Clifford algebras which are defined as extensions of
> vectorial spaces.
>
> I would be very grateful if anyone can give me some references on 
> this topic.
>
> Thanks,


DoCon-A of 0.04  is written in Agda, and it has

(I) definitions and many items for  Semigroup, Group, Ring, ... , Field,

(II) definitions for  LeftModule (over a ring)
     and  VectorSpace (over a field).

But (II) are only bare definitions. Like this:  

-----------------------------------------------------------------------
record LeftModule {α α= β β=} (upR  : UpRing α α=)
                              (upVG : UpCommutativeGroup β β=) :
                                                       Set (β= ⊔ β ⊔ α)
  where
  constructor lModule′

  private C    = UpRing.Carrier upR
          V    = UpCommutativeGroup.Carrier upVG
          upRd = UpRing.upRingoid upR

  field  _∙_            :  C → V → V         -- coefficient * vector  
         leftModuleLaws :  LeftModuleLaws upRd upVG _∙_

------------------------------------------------------------------------ 
ringAsLeftModule :  ∀ {α α=} (upR : UpRing α α=) →
                         let upA = Ring.+upCommGroup $ UpRing.ring upR
                         in  LeftModule upR upA

-- simple lemma about a ring

ringAsLeftModule upR =  lModule′ _*_ mLaws
  where
  open UpRing upR using (_*_; +upCommGroup; upRingoid; lDistrib;
                                                       rDistrib; *assoc)

  mLaws :  LeftModuleLaws upRingoid +upCommGroup _*_
  mLaws =
        record{ additiveByCoef       =  (\a b v → rDistrib v a b)
              ; additiveByVec        =  lDistrib
              ; moduleMulAssociative =  *assoc }

-----------------------------------------------------------------------

I hope to release DoCon-0.04 this summer (it remains to revise the
manual).

To program any real computation with vector spaces, one needs to add
definitions of a finite basis, decomposition by a basis, and so on.
Probably, I shall do this, because one can compute almost nothing in
algebra without using modules and vector spaces.
But may be this will not be this year.

Regards,

------
Sergei

 





More information about the Agda mailing list