Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
ff1cd7a
Update to v2.0.0
apozas Jun 3, 2024
819a5a3
Update website
apozas Jun 3, 2024
d21c646
Update website
apozas Jun 3, 2024
8ded4a7
Update README.md
ecboghiu Jun 3, 2024
d061269
Merge pull request #139 from ecboghiu/ecboghiu-intro-update
ecboghiu Jun 3, 2024
a74e88e
Merge pull request #143 from ecboghiu/devel
apozas Aug 21, 2024
e83405f
Merge pull request #146 from ecboghiu/devel
eliewolfe Oct 20, 2024
051910c
Update website
apozas Oct 20, 2024
5eba90f
Update website
apozas Oct 20, 2024
b748658
First by-hand imposition of C3 symmetry on top of triangle scenario (…
eliewolfe Nov 5, 2024
70fa820
Added Gitton's distribution, noticing assertion error
eliewolfe Nov 5, 2024
7eaa0f1
Adjustments to LP code to enable clearer debugging.
eliewolfe Nov 5, 2024
ecb3db9
LP code adjusted to account for symmetries that equate monomials whic…
eliewolfe Nov 5, 2024
084e19b
Minor performance improvements
eliewolfe Nov 5, 2024
cc74859
Remove case sensitivity in classical_sources argument
eliewolfe Nov 5, 2024
ea8c775
Cleanup name (no reason to print copy indices twice)
eliewolfe Nov 5, 2024
b8e9445
Adjust example problem to also enforce outcome relabelling symmetry
eliewolfe Nov 5, 2024
0317f94
Attempt (maybe good?) to adjust InflationSDP to allow for extra power…
eliewolfe Nov 5, 2024
244bfdd
Bugfixes to sdp_utils for compatibility with newer scipy versions.
eliewolfe Nov 5, 2024
c43f3a7
Minor bugfix to InflationSDP to ensure correct internal indexing of M…
eliewolfe Nov 5, 2024
4893704
Hack to ensure equality generation proceeds correctly even when apply…
eliewolfe Nov 7, 2024
a7d7098
Demonstration of no 3-coloring of triangle under party-relabelling an…
eliewolfe Nov 7, 2024
8207a5d
Critical fix in inequality generation now that we are avoiding the FI…
Nov 8, 2024
8a6d6ec
Incorporating (and adding to) prior work by Cristian for lossless sym…
Nov 8, 2024
bbd8f1b
Overhaul of triangle scenario scratch notebook to utilize the new aut…
Nov 8, 2024
d9ba4bf
Testing that PR box does not "become feasible" when incorporating sym…
Nov 8, 2024
cf72264
Untested hack to ensure normalization equalities are discovered for S…
eliewolfe Nov 12, 2024
cf97121
Merge remote-tracking branch 'origin/pedro_symmetries' into pedro_sym…
eliewolfe Nov 12, 2024
5476dc5
Remove garbage computation that does nothing and is memory intensive
eliewolfe Nov 14, 2024
f9fbea2
Fix to avoid including zero monomial when unnecessary, and avoid nump…
eliewolfe Nov 14, 2024
f07cb32
remove unused deletion
eliewolfe Nov 14, 2024
96a1c87
Remove legacy parameters and functions from test
apozas Nov 12, 2024
0b1f73f
Adjust all symmetry generating functions (parties, settings, outcomes…
eliewolfe Nov 28, 2024
c337a5e
Some commented code cleaned up, duplicate property removed, additiona…
eliewolfe Nov 28, 2024
04bc833
Merge branch 'refs/heads/devel' into pedro_symmetries
Dec 3, 2024
741bf98
Quick fix after merge with devel (__init__ of InflationProblem got in…
Dec 3, 2024
d4d0798
Substantial re-write with extensive fixes to possible symmetry genera…
Dec 3, 2024
0800add
Typo bugfix in setting relabelling symmetries generator
Dec 3, 2024
cb9302c
Restoring Collins-Gisin notation convention.
Dec 3, 2024
ec6c7ca
Critical bugfixes to outcome relabelling generators!
Dec 3, 2024
91f4b69
Remove duplicate definitions in test_pipeline
apozas Apr 3, 2025
4429de0
Make discover_distribution_symmetries standalone
apozas Apr 3, 2025
d90b3fb
Rename lexorder_symmetries to symmetries
apozas Apr 3, 2025
4ed62ea
Add functions to add and reset symmetries
apozas Apr 3, 2025
4a936c8
Fix symmetry test
apozas Apr 3, 2025
46cff39
Compute original permutations at the very end
apozas Apr 4, 2025
51f3cb6
Uniformize solver output status between LP and SDP
apozas Apr 4, 2025
fc04acd
Move auxiliary symmetry functions out
apozas Apr 4, 2025
ed4d8e4
Fix symmetry pipeline test
apozas Apr 4, 2025
d772a53
Add networkx requirement
apozas Apr 4, 2025
88057ab
Mosek 11 compatibility fix: Use reshaped-to-matrix linear expressions…
eliewolfe Apr 9, 2025
fde4cf5
Add test for discover_distribution_symmetries
apozas Apr 11, 2025
3adfc17
Add networkx requirement
apozas Apr 4, 2025
20f14db
Make generate_inflation_symmetries a property
apozas Apr 19, 2025
9064ec2
Move group_elements_from_group generators to utils
apozas Apr 19, 2025
c916a5a
Add test for symmetries in inflations
apozas Apr 19, 2025
7832ac4
Add test for group_elements_from_generators
apozas Apr 19, 2025
db0dd70
Bring imports to the beginning of the file
apozas Apr 19, 2025
7afea87
Add documentation and make style fixes
apozas Apr 19, 2025
44b0abb
More documentation and minor edits
apozas Apr 19, 2025
c963ede
Add certificate de-symmetrization
apozas Apr 19, 2025
3381c68
Add documentation
apozas Apr 21, 2025
f0b8c4e
Remove applications folder
apozas Apr 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
[![DOI](https://zenodo.org/badge/500850617.svg)](https://zenodo.org/badge/latestdoi/500850617)

# Inflation
Inflation is a Python package that implements inflation algorithms for causal inference. In causal inference, the main task is to determine which causal relationships can exist between different observed random variables. Inflation algorithms are a class of techniques designed to solve the causal compatibility problem, that is, test compatibility between some observed data and a given causal relationship.
Inflation is a package, written in Python, that implements inflation algorithms for causal inference. In causal inference, the main task is to determine which causal relationships can exist between different observed random variables. Inflation algorithms are a class of techniques designed to solve the causal compatibility problem, that is, test compatibility between some observed data and a given causal relationship.

The first version of this package implements the inflation technique for quantum causal compatibility. For details, see [Physical Review X 11 (2), 021043 (2021)](https://journals.aps.org/prx/abstract/10.1103/PhysRevX.11.021043). The inflation technique for classical causal compatibility will be implemented in a future update.
This package implements the inflation technique for classical, quantum, and post-quantum causal compatibility. By relaxing independence constraints to symmetries on larger graphs, it develops hierarchies of relaxations of the causal compatibility problem that can be solved using linear and semidefinite programming. For details, see [Wolfe et al. “The inflation technique for causal inference with latent variables.” Journal of Causal Inference 7 (2), 2017-0020 (2019)](https://www.degruyter.com/document/doi/10.1515/jci-2017-0020/html), [Wolfe et al. “Quantum inflation: A general approach to quantum causal compatibility.” Physical Review X 11 (2), 021043 (2021)](https://journals.aps.org/prx/abstract/10.1103/PhysRevX.11.021043), and references therein.

Examples of use of this package include:

- Causal compatibility with classical, quantum, non-signaling, and hybrid models.
- Feasibility problems and extraction of certificates.
- Optimization of Bell operators.
- Optimisation over classical distributions.
- Optimization over classical distributions.
- Handling of bilayer (i.e., networks) and multilayer causal structures.
- Standard [Navascués-Pironio-Acín hierarchy](https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.98.010401).
- Scenarios with partial information.
- Possibilistic compatibility with a causal network.
Expand Down
2 changes: 1 addition & 1 deletion docs/_build/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 43aa0c15cb34589c4ab7ae98f0f484f3
config: 3499f0084671aa32dd3b76f6907174da
tags: 645f666f9bcd5a90fca523b33c5a78b7
65 changes: 37 additions & 28 deletions docs/_build/html/_modules/index.html
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@


<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<html class="writer-html5" lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Overview: module code &mdash; CausalInflation 0.1 documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/copybutton.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<title>Overview: module code &mdash; Inflation 2.0.1 documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=92fd9be5" />
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />


<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/clipboard.min.js"></script>
<script src="../_static/copybutton.js"></script>
<script crossorigin="anonymous" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script>
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=f5cff4aa"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
<script src="../_static/copybutton.js?v=a56c686a"></script>
<script crossorigin="anonymous" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
Expand All @@ -29,11 +29,15 @@
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html" class="icon icon-home"> CausalInflation



<a href="../contents.html" class="icon icon-home">
Inflation
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
Expand All @@ -57,15 +61,15 @@

<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">CausalInflation</a>
<a href="../contents.html">Inflation</a>
</nav>

<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home"></a> &raquo;</li>
<li>Overview: module code</li>
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Overview: module code</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
Expand All @@ -75,12 +79,17 @@
<div itemprop="articleBody">

<h1>All modules for which code is available</h1>
<ul><li><a href="causalinflation/InflationProblem.html">causalinflation.InflationProblem</a></li>
<li><a href="causalinflation/quantum/InflationSDP.html">causalinflation.quantum.InflationSDP</a></li>
<li><a href="causalinflation/quantum/fast_npa.html">causalinflation.quantum.fast_npa</a></li>
<li><a href="causalinflation/quantum/monomial_classes.html">causalinflation.quantum.monomial_classes</a></li>
<li><a href="causalinflation/quantum/quantum_tools.html">causalinflation.quantum.quantum_tools</a></li>
<li><a href="causalinflation/quantum/sdp_utils.html">causalinflation.quantum.sdp_utils</a></li>
<ul><li><a href="inflation/InflationProblem.html">inflation.InflationProblem</a></li>
<li><a href="inflation/lp/InflationLP.html">inflation.lp.InflationLP</a></li>
<li><a href="inflation/lp/lp_utils.html">inflation.lp.lp_utils</a></li>
<li><a href="inflation/lp/monomial_classes.html">inflation.lp.monomial_classes</a></li>
<li><a href="inflation/optimization_utils.html">inflation.optimization_utils</a></li>
<li><a href="inflation/sdp/InflationSDP.html">inflation.sdp.InflationSDP</a></li>
<li><a href="inflation/sdp/fast_npa.html">inflation.sdp.fast_npa</a></li>
<li><a href="inflation/sdp/monomial_classes.html">inflation.sdp.monomial_classes</a></li>
<li><a href="inflation/sdp/quantum_tools.html">inflation.sdp.quantum_tools</a></li>
<li><a href="inflation/sdp/sdp_utils.html">inflation.sdp.sdp_utils</a></li>
<li><a href="inflation/utils.html">inflation.utils</a></li>
</ul>

</div>
Expand All @@ -90,7 +99,7 @@ <h1>All modules for which code is available</h1>
<hr/>

<div role="contentinfo">
<p>&#169; Copyright 2022, Emanuel-Cristian Boghiu, Elie Wolfe, Alejandro Pozas-Kerstjens.</p>
<p>&#169; Copyright 2024, Emanuel-Cristian Boghiu, Elie Wolfe, Alejandro Pozas-Kerstjens.</p>
</div>

Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Expand Down
Loading
Loading