This file is indexed.

/usr/share/axiom-20170501/src/algebra/INFCLSPT.spad is in axiom-source 20170501-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
)abbrev domain INFCLSPT InfinitlyClosePoint
++ Authors: Gaetan Hache
++ Date Created: june 1996 
++ Date Last Updated: May 2010 by Tim Daly
++ Description: 
++ This domain is part of the PAFF package
InfinitlyClosePoint(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR,BLMET) :
 SIG == CODE where
  K : Field
  symb : List Symbol
  E : DirectProductCategory(#symb,NonNegativeInteger)
  OV ==> OrderedVariableList(symb)
  PolyRing :  PolynomialCategory(K,E,OV)
  PCS : LocalPowerSeriesCategory(K)
  ProjPt : ProjectiveSpaceCategory(K)
  Plc : PlacesCategory(K,PCS)
  DIVISOR : DivisorCategory(Plc)
  BLMET : BlowUpMethodCategory

  bls      ==> ['X,'Y]
  BlUpRing ==> DistributedMultivariatePolynomial(bls , K)
  E2       ==> DirectProduct( #bls , NonNegativeInteger )
  outRec   ==> Record(name:Symbol,mult:NonNegativeInteger)
  AFP      ==> AffinePlane(K)
  OV2      ==> OrderedVariableList( bls )
  
  bigoutRecBLQT ==> Record(dominate:ProjPt,_
                       name:Symbol,_
                       mult:NonNegativeInteger,_
                       defCurve:BlUpRing,_
                       localPoint:AFP,_
                       chart:BLMET,_ 
                       expD:DIVISOR) 

  bigoutRecHN  ==> Record(dominate:ProjPt,_
                       name:Symbol,_
                       mult:NonNegativeInteger,_
                       defCurve:BlUpRing,_
                       localPoint:AFP,_
                       chart:BLMET,_ 
                       subMultip: NonNegativeInteger,_
                       expD:DIVISOR) 


  representation   ==>  Record(point:ProjPt,_
                               curve:BlUpRing,_
                               localPoint:AFP,_
                               mult:NonNegativeInteger,_
                               chrt:BLMET,_
                               subMultiplicity:NonNegativeInteger,_
                               excpDiv:DIVISOR,_
                               localParam:List(PCS),_
                               actualExtension:K,_
                               symbName:Symbol)


  SIG ==> InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,PCS,Plc,
                                      DIVISOR,BLMET) with 

    fullOut : % -> OutputForm
      ++ fullOut(tr) yields a full output of tr (see function fullOutput).

    fullOutput : Boolean -> Boolean
      ++ fullOutput(b) sets a flag such that when true, a coerce to 
      ++ OutputForm yields the full output of tr, otherwise encode(tr) is 
      ++ output (see encode function). The default is false.

    fullOutput : () -> Boolean
      ++ fullOutput returns the value of the flag set by fullOutput(b).   
     
  CODE ==> representation add

    Rep := representation

    polyRing2BiRing: (PolyRing, Integer) -> BlUpRing
    polyRing2BiRing(pol,nV)==
      zero? pol => 0$BlUpRing
      d:= degree pol
      lc:= leadingCoefficient pol
      dd: List NonNegativeInteger := entries d
      ddr:=vector([dd.i for i in 1..#dd | ^(i=nV)])$Vector(NonNegativeInteger)
      ddre:E2 := directProduct( ddr )$E2
      monomial(lc,ddre)$BlUpRing  + polyRing2BiRing( reductum pol , nV )

    projPt2affPt: (ProjPt, Integer) -> AFP
    projPt2affPt(pt,nV)==
      ll:= pt :: List(K)
      l:= [ ll.i for i in 1..#ll | ^(i = nV )]
      affinePoint( l)

    fullOut(a)==
      oo: bigoutRecBLQT
      oo2: bigoutRecHN
      BLMET has BlowUpWithQuadTrans =>
        oo:=  [ pointV(a), symbNameV(a), multV(a), curveV(a), _
              localPointV(a), chartV(a),  excpDivV(a) ]$bigoutRecBLQT
        oo :: OutputForm
      BLMET has BlowUpWithHamburgerNoether => 
        oo2:=  [ pointV(a), symbNameV(a), multV(a), curveV(a), _
              localPointV(a), chartV(a), subMultV(a), excpDivV(a) ]$bigoutRecHN
        oo2 :: OutputForm

    fullOutputFlag:Boolean:=false()

    fullOutput(f)== fullOutputFlag:=f

    fullOutput == fullOutputFlag

    coerce(a:%):OutputForm== 
      fullOutput() => fullOut(a)
      oo:outRec:= [ symbNameV(a) , multV(a) ]$outRec
      oo :: OutputForm

    degree(a)==
      K has PseudoAlgebraicClosureOfPerfectFieldCategory  => _
        extDegree actualExtensionV a
      1
      
    create(pointA,curveA,localPointA,multA,chartA,subM,excpDivA,atcL,aName)==
      ([pointA,curveA,localPointA,multA,chartA,subM,_
        excpDivA,empty()$List(PCS),atcL,aName]$Rep)::%

    create(pointA,curveA)==
      nV := lastNonNul pointA
      localPointA := projPt2affPt(pointA,nV)
      multA:NonNegativeInteger:=0$NonNegativeInteger
      chartA:BLMET 
      if BLMET has QuadraticTransform then 
        chartA:=( [0,0, nV] :: List Integer ) :: BLMET   -- CHH
      if BLMET has HamburgerNoether then
        chartA := createHN( 0,0,nV,0,0,true,"right")   -- A changer le "right" 
      excpDivA:DIVISOR:= 0$DIVISOR
      actL:K:=definingField pointA
      aName:Symbol:=new(P)$Symbol
      affCurvA : BlUpRing := polyRing2BiRing(curveA,nV)
      create(pointA,affCurvA,localPointA,multA,chartA,_
             0$NonNegativeInteger,excpDivA,actL,aName)
      
    subMultV(a:%)== (a:Rep)(subMultiplicity)

    setsubmult_!(a:%,sm:NonNegativeInteger)== (a:Rep)(subMultiplicity) := sm

    pointV(a:%)     ==(a:Rep)(point)

    symbNameV(a:%)     ==(a:Rep)(symbName)

    curveV(a:%)  ==(a:Rep)(curve)

    localPointV(a:%)   ==(a:Rep)(localPoint)

    multV(a:%)    ==(a:Rep)(mult)

    chartV(a:%)   ==(a:Rep)(chrt)  -- CHH

    excpDivV(a:%) ==(a:Rep)(excpDiv)

    localParamV(a:%) ==(a:Rep)(localParam)
    
    actualExtensionV(a:%) == (a:Rep)(actualExtension)

    setpoint_!(a:%,n:ProjPt)       ==(a:Rep)(point):=n

    setcurve_!(a:%,n:BlUpRing)   ==(a:Rep)(curve):=n

    setlocalPoint_!(a:%,n:AFP)  ==(a:Rep)(localPoint):=n

    setmult_!(a:%,n:NonNegativeInteger)         ==(a:Rep)(mult):=n

    setchart_!(a:%,n:BLMET)  ==(a:Rep)(chrt):=n  -- CHH

    setlocalParam_!(a:%,n:List(PCS)) ==(a:Rep)(localParam):=n

    setexcpDiv_!(a:%,n:DIVISOR) ==(a:Rep)(excpDiv):=n

    setsymbName_!(a:%,n:Symbol) ==(a:Rep)(symbName):=n