Computation of homotopy groups (null groups included)

This commit is contained in:
Ana Romero 2019-05-08 18:04:18 +02:00
parent a80dd83a67
commit 4ffed16284
2 changed files with 213 additions and 204 deletions

View File

@ -17,7 +17,8 @@
((:file "package") ((:file "package")
(:module "src" (:module "src"
:components :components
((:file "kenzo") (
(:file "kenzo")
(:file "abbreviations") (:file "abbreviations")
(:file "macros") (:file "macros")
(:file "various") (:file "various")
@ -56,16 +57,16 @@
(:file "cl-space-efhm") (:file "cl-space-efhm")
(:file "whitehead") (:file "whitehead")
(:file "smith") (:file "smith")
(:file "sage-interface")
(:module "anromero" (:module "anromero"
:components :components
((:file "bicomplexes") ((:file "resolutions")
(:file "filtered-complexes")
(:file "spectral-sequences")
(:file "resolutions")
(:file "cylinders") (:file "cylinders")
(:file "fundamental-classes") (:file "fundamental-classes")
(:file "homotopy"))) (:file "homotopy")
(:file "bicomplexes")))
#|
((:file "bicomplexes")
(:file "filtered-complexes")
(:file "spectral-sequences")))
|#
)))) ))))

View File

@ -6,6 +6,7 @@
;;; Authors: Jonathan Heras and Ana Romero ;;; Authors: Jonathan Heras and Ana Romero
(IN-PACKAGE #:cat) (IN-PACKAGE #:cat)
(provide "homotopy") (provide "homotopy")
@ -56,13 +57,14 @@
(result (homology-format (eval ft) (1+ indx)))) (result (homology-format (eval ft) (1+ indx))))
(if (= (1+ indx) n-hom) (if (= (1+ indx) n-hom)
(homology-format (eval ft) n-hom) (homology-format (eval ft) n-hom)
(if (string= "NIL" result) result
(if (string= "Z " result) (if (string= "Z " result)
(compute-homotopy-z-xslt n-hom ft (1+ indx)) (compute-homotopy-z-xslt n-hom ft (1+ indx))
(if (string= "Z/2Z " result) (if (string= "Z/2Z " result)
(compute-homotopy-z2-xslt n-hom ft (1+ indx)) (compute-homotopy-z2-xslt n-hom ft (1+ indx))
(if (and (string= (subseq result 0 2) "Z/") (string= (subseq result (search "Z" result :start2 2)) "Z")) (if (and (string= (subseq result 0 2) "Z/") (string= (subseq result (search "Z" result :start2 2)) "Z"))
(compute-homotopy-zp-xslt n-hom ft (1+ indx) (read-from-string (subseq result 2 (search "Z" result :start2 2)))) (compute-homotopy-zp-xslt n-hom ft (1+ indx) (read-from-string (subseq result 2 (search "Z" result :start2 2))))
(compute-homotopy-several-xslt n-hom ft (1+ indx) result))))))) (compute-homotopy-several-xslt n-hom ft (1+ indx) result))))))))
(DEFUN COMPUTE-HOMOTOPY-Z2-XSLT (n-hom obj indx) (DEFUN COMPUTE-HOMOTOPY-Z2-XSLT (n-hom obj indx)
@ -72,13 +74,14 @@
(result (homology-format (eval ft) (1+ indx)))) (result (homology-format (eval ft) (1+ indx))))
(if (= (1+ indx) n-hom) (if (= (1+ indx) n-hom)
(homology-format (eval ft) n-hom) (homology-format (eval ft) n-hom)
(if (string= "NIL" result) result
(if (string= "Z " result) (if (string= "Z " result)
(compute-homotopy-z-xslt n-hom ft (1+ indx)) (compute-homotopy-z-xslt n-hom ft (1+ indx))
(if (string= "Z/2Z " result) (if (string= "Z/2Z " result)
(compute-homotopy-z2-xslt n-hom ft (1+ indx)) (compute-homotopy-z2-xslt n-hom ft (1+ indx))
(if (and (string= (subseq result 0 2) "Z/") (string= (subseq result (search "Z" result :start2 2)) "Z")) (if (and (string= (subseq result 0 2) "Z/") (string= (subseq result (search "Z" result :start2 2)) "Z"))
(compute-homotopy-zp-xslt n-hom ft (1+ indx) (read-from-string (subseq result 2 (search "Z" result :start2 2)))) (compute-homotopy-zp-xslt n-hom ft (1+ indx) (read-from-string (subseq result 2 (search "Z" result :start2 2))))
(compute-homotopy-several-xslt n-hom ft (1+ indx) result))))))) (compute-homotopy-several-xslt n-hom ft (1+ indx) result))))))))
(DEFUN COMPUTE-HOMOTOPY-ZP-XSLT (n-hom obj indx n) (DEFUN COMPUTE-HOMOTOPY-ZP-XSLT (n-hom obj indx n)
@ -88,17 +91,20 @@
(result (homology-format (eval ft) (1+ indx)))) (result (homology-format (eval ft) (1+ indx))))
(if (= (1+ indx) n-hom) (if (= (1+ indx) n-hom)
(homology-format (eval ft) n-hom) (homology-format (eval ft) n-hom)
(if (string= "NIL" result) result
(if (string= "Z " result) (if (string= "Z " result)
(compute-homotopy-z-xslt n-hom ft (1+ indx)) (compute-homotopy-z-xslt n-hom ft (1+ indx))
(if (string= "Z/2Z " result) (if (string= "Z/2Z " result)
(compute-homotopy-z2-xslt n-hom ft (1+ indx)) (compute-homotopy-z2-xslt n-hom ft (1+ indx))
(if (and (string= (subseq result 0 2) "Z/") (string= (subseq result (search "Z" result :start2 2)) "Z")) (if (and (string= (subseq result 0 2) "Z/") (string= (subseq result (search "Z" result :start2 2)) "Z"))
(compute-homotopy-zp-xslt n-hom ft (1+ indx) (read-from-string (subseq result 2 (search "Z" result :start2 2)))) (compute-homotopy-zp-xslt n-hom ft (1+ indx) (read-from-string (subseq result 2 (search "Z" result :start2 2))))
(compute-homotopy-several-xslt n-hom ft (1+ indx) result))))))) (compute-homotopy-several-xslt n-hom ft (1+ indx) result))))))))
(DEFUN SPLIT-COMPONENTS (string) (DEFUN SPLIT-COMPONENTS (string)
(let ((term (if (string= string "") "" (subseq string 0 2)))) (let ((term (if (string= string "") ""
(if (string= string "NIL") NIL
(subseq string 0 2)))))
(if (string= term "Z ") (if (string= term "Z ")
(cons 1 (split-components (subseq string 2))) (cons 1 (split-components (subseq string 2)))
(if (string= term "Z/") (if (string= term "Z/")
@ -130,13 +136,14 @@
(result (homology-format ft (1+ indx)))) (result (homology-format ft (1+ indx))))
(if (= (1+ indx) n-hom) (if (= (1+ indx) n-hom)
(homology-format (eval ft) n-hom) (homology-format (eval ft) n-hom)
(if (string= "NIL" result) result
(if (string= "Z " result) (if (string= "Z " result)
(compute-homotopy-z-xslt n-hom ft (1+ indx)) (compute-homotopy-z-xslt n-hom ft (1+ indx))
(if (string= "Z/2Z " result) (if (string= "Z/2Z " result)
(compute-homotopy-z2-xslt n-hom ft (1+ indx)) (compute-homotopy-z2-xslt n-hom ft (1+ indx))
(if (and (string= (subseq result 0 2) "Z/") (string= (subseq result (search "Z" result :start2 2)) "Z")) (if (and (string= (subseq result 0 2) "Z/") (string= (subseq result (search "Z" result :start2 2)) "Z"))
(compute-homotopy-zp-xslt n-hom ft (1+ indx) (read-from-string (subseq result 2 (search "Z" result :start2 2)))) (compute-homotopy-zp-xslt n-hom ft (1+ indx) (read-from-string (subseq result 2 (search "Z" result :start2 2))))
(compute-homotopy-several-xslt n-hom ft (1+ indx) result))))))) (compute-homotopy-several-xslt n-hom ft (1+ indx) result))))))))
(DEFUN COMPUTE-HOMOTOPY2-XSLT (n-hom obj degree hom) (DEFUN COMPUTE-HOMOTOPY2-XSLT (n-hom obj degree hom)
@ -191,3 +198,4 @@