/
index.html
2 lines (2 loc) · 9.71 KB
/
index.html
1
2
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Catlab.jl · Catlab.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit">Catlab.jl</span></div><form class="docs-search" action="search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Catlab.jl</a><ul class="internal"><li><a class="tocitem" href="#What-is-Catlab?-1"><span>What is Catlab?</span></a></li><li><a class="tocitem" href="#Table-of-Contents-1"><span>Table of Contents</span></a></li></ul></li><li><span class="tocitem">Vignettes</span><ul><li><input class="collapse-toggle" id="menuitem-2-1" type="checkbox"/><label class="tocitem" for="menuitem-2-1"><span class="docs-label">Wiring diagrams</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="generated/wiring_diagrams/wiring_diagram_basics/">Basics of wiring diagrams</a></li><li><a class="tocitem" href="generated/wiring_diagrams/diagrams_and_expressions/">Wiring diagrams and syntactic expressions</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-2-2" type="checkbox"/><label class="tocitem" for="menuitem-2-2"><span class="docs-label">Graphics</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="generated/graphics/composejl_wiring_diagrams/">Wiring diagrams in Compose.jl</a></li><li><a class="tocitem" href="generated/graphics/graphviz_wiring_diagrams/">Wiring diagrams in Graphviz</a></li><li><a class="tocitem" href="generated/graphics/tikz_wiring_diagrams/">Wiring diagrams in TikZ</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-2-3" type="checkbox"/><label class="tocitem" for="menuitem-2-3"><span class="docs-label">Experimental features</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="generated/programs/algebraic_nets/">Algebraic networks</a></li></ul></li></ul></li><li><span class="tocitem">Modules</span><ul><li><a class="tocitem" href="apis/core/">Symbolic expressions</a></li><li><a class="tocitem" href="apis/doctrines/">Doctrines</a></li><li><a class="tocitem" href="apis/wiring_diagrams/">Wiring diagrams</a></li><li><a class="tocitem" href="apis/graphics/">Graphics</a></li><li><a class="tocitem" href="apis/programs/">Programs</a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Catlab.jl</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Catlab.jl</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/epatters/Catlab.jl/blob/master/docs/src/index.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Catlab.jl-Documentation-1"><a class="docs-heading-anchor" href="#Catlab.jl-Documentation-1">Catlab.jl Documentation</a><a class="docs-heading-anchor-permalink" href="#Catlab.jl-Documentation-1" title="Permalink"></a></h1><p>Catlab.jl is an experimental framework for applied category theory, written in <a href="https://julialang.org">Julia</a>. It provides a programming library and interactive interface for applications of category theory to the sciences and engineering fields. It emphasizes monoidal categories due to their wide applicability but can support any categorical doctrine that is formalizable as a generalized algebraic theory.</p><h2 id="What-is-Catlab?-1"><a class="docs-heading-anchor" href="#What-is-Catlab?-1">What is Catlab?</a><a class="docs-heading-anchor-permalink" href="#What-is-Catlab?-1" title="Permalink"></a></h2><p>Catlab is, or will eventually be, the following things.</p><p><strong>Programming library</strong>: First and foremost, Catlab provides data structures, algorithms, and serialization for applied category theory. Macros offer a convenient syntax for specifying categorical doctrines and type-safe symbolic manipulation systems. Wiring diagrams (aka string diagrams) are supported through specialized data structures and can be serialized to and from GraphML (an XML-based format) and JSON.</p><p><strong>Interactive computing environment</strong>: Catlab can also be used interactively in <a href="http://jupyter.org">Jupyter notebooks</a>. Symbolic expressions are displayed using LaTeX and wiring diagrams are visualized using <a href="http://www.graphviz.org">Graphviz</a> or <a href="https://www.ctan.org/pkg/pgf">TikZ</a>.</p><p><strong>Computer algebra system</strong>: Catlab will serve as a computer algebra system for category theory. Unlike most computer algebra systems, all expressions are typed using fragment of dependent type theory called <a href="https://ncatlab.org/nlab/show/generalized+algebraic+theory">generalized algebraic theories</a>. We will implement core algorithms for solving word problems and reducing expressions in normal form, with respect to several important doctrines, such as the doctrine of categories and the doctrine of symmetric monoidal categories.</p><h3 id="What-is-Catlab-not?-1"><a class="docs-heading-anchor" href="#What-is-Catlab-not?-1">What is Catlab not?</a><a class="docs-heading-anchor-permalink" href="#What-is-Catlab-not?-1" title="Permalink"></a></h3><p>Catlab is <em>not</em> currently any of the following things, although we do not rule out that it could eventually evolve in these directions.</p><p><strong>Automated theorem prover</strong>: Although there is some overlap between computer algebra systems and automated theorem provers, Catlab cannot be considered a theorem prover because it does not produce formal certificates of correctness (aka proofs).</p><p><strong>Proof assistant</strong>: Likewise, Catlab is not a proof assistant because it does not produce formally verifiable proofs. Formal verification is not within scope of the project.</p><p><strong>Graphical user interface</strong>: Catlab does not provide a wiring diagram editor or other graphical user interface. It is primarily a programming library, not a user-facing application. However, it could be used as the backend for such an application.</p><h2 id="Table-of-Contents-1"><a class="docs-heading-anchor" href="#Table-of-Contents-1">Table of Contents</a><a class="docs-heading-anchor-permalink" href="#Table-of-Contents-1" title="Permalink"></a></h2><ul><li><a href="apis/core/#Symbolic-expressions-1">Symbolic expressions</a></li><ul><li><a href="apis/core/#Signatures-1">Signatures</a></li><li><a href="apis/core/#Instances-1">Instances</a></li><li><a href="apis/core/#Syntax-systems-1">Syntax systems</a></li><li><a href="apis/core/#Presentations-1">Presentations</a></li><li><a href="apis/core/#API-1">API</a></li></ul><li><a href="apis/doctrines/#Doctrines-1">Doctrines</a></li><li><a href="apis/wiring_diagrams/#Wiring-diagrams-1">Wiring diagrams</a></li><li><a href="apis/graphics/#Graphics-1">Graphics</a></li><li><a href="apis/programs/#Programs-1">Programs</a></li></ul></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="generated/wiring_diagrams/wiring_diagram_basics/">Basics of wiring diagrams »</a></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Sunday 5 January 2020 05:17">Sunday 5 January 2020</span>. Using Julia version 1.3.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>