FiniteCategories-0.3.0.0: src/Math/Functors/DataMigration/Example.hs
{-| Module : FiniteCategories
Description : An exemple of a 'dataMigration' pretty printed.
Copyright : Guillaume Sabbagh 2022
License : GPL-3
Maintainer : guillaumesabbagh@protonmail.com
Stability : experimental
Portability : portable
An exemple of 'dataMigration' pretty printed.
-}
module Math.Functors.DataMigration.Example
(
main
)
where
import Math.FiniteCategory
import Math.FiniteCategories.SafeCompositionGraph
import Math.FiniteCategories
import Math.Functors.DataMigration
import Math.Categories.FinSet
import Math.IO.PrettyPrint
import Math.FiniteCategory
import Data.WeakSet (Set)
import qualified Data.WeakSet as Set
import Data.WeakSet.Safe
import Data.WeakMap (Map)
import qualified Data.WeakMap as Map
import Data.WeakMap.Safe
-- | An exemple of 'DataMigration' pretty printed.
main :: IO ()
main = do
putStrLn "Start of Math.Functors.DataMigration.Example"
-- let Right graphSketch = readSCGString "3\nE -s-> V\nE -t-> V"
-- let Right autographSketch = readSCGString "3\nA -s-> A -s-> A = A -t-> A\nA -s-> A -t-> A = <ID>\nA -t-> A -s-> A = <ID>\n A -t-> A -t-> A = A -s-> A"
-- let f = (setToList $ ob (FunctorCategory graphSketch autographSketch)) !! 7
-- --Diagram{src=graphSketch, tgt=autographSketch, omap=memorizeFunction (const.anElement.ob $ autographSketch) (ob graphSketch), mmap = weakMap (zip (setToList (arrows graphSketch)) (setToList (arrows autographSketch)))}
-- putStrLn $ pprintFiniteCategory graphSketch
-- putStrLn $ pprintFiniteCategory autographSketch
-- putStrLn $ pprint f
-- putStrLn (show f)
-- let universe = ens $ set [set [1 :: Int,2]]
-- let delta = (deltaFunctor universe f)
-- let anInstance = anElement (ob.source $ delta)
-- putStrLn $ pprint anInstance
-- putStrLn $ pprint (delta ->$ anInstance)
-- let universe = ens $ set [set[], set[1], set[1 :: Int,2]]
-- let pii = (piFunctor universe f)
-- let anInstance = (setToList.ob.source $ delta) !! 0
-- putStrLn $ pprint anInstance
-- putStrLn $ pprint (pii ->$ anInstance)
-- let c = V
-- let d = numberCategory 2
-- let f = completeDiagram Diagram{src=c,tgt=d,omap=weakMap [(VA,2),(VB,1),(VC,1)],mmap=weakMap [(VF,IsSmallerThan 1 2),(VG,IsSmallerThan 1 2)]}
let c = Parallel
let d = discreteCategory (set "A")
let f = completeDiagram Diagram{src=d,tgt=c,omap=weakMap [('A',ParallelA)],mmap = Map.empty}
putStrLn $ pprint f
let universe = ens $ set [set[], set [1 :: Int,2], set [1]]
let anInstance = completeDiagram Diagram{src=d,tgt=universe,omap=weakMap [('A',set [1])],mmap=Map.empty}
putStrLn $ pprint anInstance
putStrLn $ pprint anInstance
let pii = (piFunctor universe f)
putStrLn $ pprint (pii ->$ anInstance)
putStrLn $ pprint (pii ->$ anInstance)
putStrLn $ show (pii ->$ anInstance)
let sigmaa = (sigmaFunctor universe f)
putStrLn $ pprint (sigmaa ->$ anInstance)
putStrLn $ pprint (sigmaa ->$ anInstance)
putStrLn $ show (sigmaa ->$ anInstance)
putStrLn "End of Math.Functors.DataMigration.Example"