<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Wasserstein on My Hugo Project</title><link>https://ostensible-paradox.pages.dev/en/tags/wasserstein/</link><description>Recent content in Wasserstein on My Hugo Project</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 22 May 2026 22:20:00 +0800</lastBuildDate><atom:link href="https://ostensible-paradox.pages.dev/en/tags/wasserstein/index.xml" rel="self" type="application/rss+xml"/><item><title>Erbar-Maas Singular Causal Interventions</title><link>https://ostensible-paradox.pages.dev/en/posts/erbar_mass_en/</link><pubDate>Fri, 22 May 2026 22:20:00 +0800</pubDate><guid>https://ostensible-paradox.pages.dev/en/posts/erbar_mass_en/</guid><description>An interactive laboratory demonstrating singular limits on Continuous-Time Markov Chains.</description><content:encoded><![CDATA[<p>How do we reconcile the physical, continuous dynamics of a thermodynamic system with the discontinuous, logical operations of causal graph surgery?</p>
<p>In classical causal inference (Pearl, 2009), a causal intervention is modeled via the <strong>do-operator</strong>, which surgically severs incoming causal links to a target variable and forces it to a fixed value. While mathematically clean, this &ldquo;graph surgery&rdquo; is a discontinuous operation: it instantly zeroes out transition rates, defying physical processes which must obey continuous probability conservation and finite transmission speeds.</p>
<p>The <strong>Erbar-Maas Singular Intervention Theorem</strong> provides a rigorous mathematical bridge. By representing causal interventions as the infinite-rate singular limit of continuous-time restoration forces, we recover Pearl&rsquo;s discontinuous causal surgery exactly as a timescale separation limit on Continuous-Time Markov Chains (CTMCs).</p>
<p>Below is an interactive mathematical laboratory showcasing the convergence, Wasserstein geometry, and entropy gradient flows behind this theorem.</p>
<hr>
<link rel="stylesheet" href="/css/interactive-proof.min.11d50387654578442c07d15c73d8dff500cc122fc7e3ba51459ca4daf7307c7b.css" integrity="sha256-EdUDh2VFeEQsB9Fcc9jf9QDMEi/H47pRRZyk2vcwfHs=">

<div id="interactive-proof-lab" class="interactive-proof-lab">
  
  <div class="ipl-intro">
    <div class="ipl-badge">
      <svg class="ipl-icon" viewBox="0 0 24 24" width="14" height="14" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="20" x2="18" y2="10"></line><line x1="12" y1="20" x2="12" y2="4"></line><line x1="6" y1="20" x2="6" y2="14"></line></svg>
      Causal Modeling Limit
    </div>
    <h2 class="ipl-title">Erbar-Maas Singular Intervention Theorem</h2>
    <p class="ipl-subtitle">
      Interactive theorem builder proving that Pearl’s discontinuous graph surgeries can be recovered exactly as the infinite-rate singular state perturbation of physical Continuous-Time Markov Chain (CTMC) models.
    </p>
  </div>

  
  <div class="ipl-grid">
    
    
    <div class="ipl-left-panel">
      
      <div class="ipl-panel-gridbg"></div>
      
      
      <div class="ipl-panel-header">
        <span class="ipl-status-indicator">
          <span class="ipl-pulse-dot"></span>
          CTMC CAUSAL SIMULATOR 1.2
        </span>
        <span id="ipl-slide-number">SLIDE 1 / 7</span>
      </div>

      
      <div class="ipl-board-arena">
        
        
        <div class="ipl-visualizer-row">
          
          
          <div id="causal-graph-map" class="ipl-graph-box">
            <span class="ipl-box-label">Finite Causal State Network</span>
            
            
            <div class="ipl-graph-workspace">
              
              
              <div class="ipl-node-container ipl-node-a" data-node="0">
                <div class="ipl-node">A</div>
                <span class="ipl-node-prob">0.650</span>
              </div>

              
              <div class="ipl-node-container ipl-node-b" data-node="1">
                <div class="ipl-node">B</div>
                <span class="ipl-node-prob">0.250</span>
              </div>

              
              <div class="ipl-node-container ipl-node-c" data-node="2">
                <div class="ipl-node">C<span class="ipl-do-badge ipl-hidden" id="ipl-do-badge">DO</span></div>
                <span class="ipl-node-prob">0.100</span>
              </div>

              
              <svg class="ipl-graph-svg" viewBox="0 0 320 240">
                <defs>
                  <marker id="ipl-arrow-orange" viewBox="0 0 10 10" refX="24" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
                    <path d="M 0 0 L 10 5 L 0 10 z" fill="#d97706" />
                  </marker>
                  <marker id="ipl-arrow-blue" viewBox="0 0 10 10" refX="24" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
                    <path d="M 0 0 L 10 5 L 0 10 z" fill="#818cf8" />
                  </marker>
                </defs>

                
                
                <line id="ipl-line-ac" x1="70" y1="170" x2="150" y2="70" stroke="#818cf8" stroke-width="2" marker-end="url(#ipl-arrow-blue)" class="ipl-transition-line" />
                
                
                <line id="ipl-line-bc" x1="250" y1="170" x2="170" y2="70" stroke="#818cf8" stroke-width="2" marker-end="url(#ipl-arrow-blue)" class="ipl-transition-line" />

                
                <line id="ipl-line-ab" x1="100" y1="190" x2="220" y2="190" stroke="#818cf8" stroke-width="1.5" class="ipl-transition-line" />
              </svg>

            </div>

            
            <div id="ipl-legend-badge" class="ipl-legend-badge">
              Standard reversible paths
            </div>
          </div>

          
          <div id="generator-heatmap-detail" class="ipl-matrix-box">
            <div class="ipl-matrix-header">
              <span class="ipl-box-label">Active Matrix Algebra</span>
              <p id="ipl-matrix-name" class="ipl-matrix-name">REVERSIBLE GENERATOR Q</p>
            </div>

            
            <div class="ipl-matrix-grid" id="ipl-matrix-grid">
              
            </div>

            
            <div id="ipl-lambda-control" class="ipl-slider-container ipl-hidden">
              <div class="ipl-slider-label-row">
                <span>RESTORATIVE RATE λ (Forcing Power):</span>
                <span id="ipl-lambda-value" class="ipl-value-highlight">λ = 5</span>
              </div>
              <input 
                id="forcing-power-slider"
                type="range"
                min="1"
                max="40"
                step="1"
                value="5"
                class="ipl-range-slider"
              />
            </div>
          </div>

        </div>

        
        <div id="simulation-monitor" class="ipl-monitor-bar">
          <div class="ipl-monitor-col">
            <span class="ipl-monitor-label">Active Simulation Time t</span>
            <div class="ipl-time-control">
              <input 
                id="simulation-time-slider"
                type="range"
                min="0.1"
                max="5.0"
                step="0.1"
                value="1.0"
                class="ipl-range-slider"
              />
              <span id="ipl-time-value" class="ipl-monitor-value-small">1.0s</span>
            </div>
          </div>

          <div class="ipl-monitor-col border-left">
            <span class="ipl-monitor-label">Information Entropy H(p|π)</span>
            <span id="ipl-entropy-value" class="ipl-monitor-value value-emerald">
              0.00000 nats
            </span>
          </div>

          <div class="ipl-monitor-col border-left">
            <span class="ipl-monitor-label">State-Space Mass</span>
            <span id="ipl-mass-value" class="ipl-monitor-value value-indigo">
              A: 65% • B: 25% • C: 10%
            </span>
          </div>
        </div>

        
        <div class="ipl-explanation-banner">
          <h3 id="ipl-step-title" class="ipl-step-title">Reversible CTMC & Causal State Space</h3>
          <p id="ipl-step-explanation" class="ipl-step-explanation">We formulate our system on a finite state graph with generator Q. Reversibility (detailed balance with respect to stationary measure π) guarantees our chain lacks circulating currents, enabling a clean potential landscape.</p>
        </div>

      </div>

      
      <div class="ipl-control-panel">
        
        
        <div class="ipl-scrubber-row">
          <span class="ipl-scrubber-limit-label">1. BASE STOCHASTICS</span>
          <div class="ipl-scrubber-bar" id="ipl-scrubber-bar">
            
          </div>
          <span class="ipl-scrubber-limit-label">7. CAUSAL LIMIT</span>
        </div>

        <div class="ipl-buttons-row">
          
          
          <div class="ipl-media-controls">
            <button id="btn-prev-step" class="ipl-btn-icon" title="Previous Slide" disabled>
              <svg viewBox="0 0 24 24" width="16" height="16" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>
            </button>

            <button id="btn-autoplay-toggle" class="ipl-btn-text" title="Auto Play">
              
              <svg id="autoplay-play-icon" class="ipl-media-icon" viewBox="0 0 24 24" width="14" height="14" stroke="currentColor" stroke-width="2" fill="currentColor" stroke-linecap="round" stroke-linejoin="round"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>
              
              <svg id="autoplay-pause-icon" class="ipl-media-icon ipl-hidden" viewBox="0 0 24 24" width="14" height="14" stroke="currentColor" stroke-width="2" fill="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="4" width="4" height="16"></rect><rect x="14" y="4" width="4" height="16"></rect></svg>
              <span id="autoplay-btn-label">Auto-Play</span>
            </button>

            <button id="btn-next-step" class="ipl-btn-icon" title="Next Slide">
              <svg viewBox="0 0 24 24" width="16" height="16" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>

            <button id="btn-reset-timeline" class="ipl-btn-icon" title="Reset Simulator Settings">
              <svg viewBox="0 0 24 24" width="15" height="15" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="1 4 1 10 7 10"></polyline><path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"></path></svg>
            </button>
          </div>

          
          <div id="ipl-speed-control" class="ipl-speed-control ipl-hidden">
            <span>AUTOPLAY LAPSE:</span>
            <input
              id="autoplay-speed-slider"
              type="range"
              min="2000"
              max="8000"
              step="500"
              value="3500"
              class="ipl-range-slider-mini"
            />
            <span id="ipl-speed-value">3.5s</span>
          </div>

          
          <div class="ipl-scene-jump">
            <span>STAGE:</span>
            <select id="scene-selection-dropdown" class="ipl-dropdown">
              
            </select>
          </div>

        </div>

      </div>

    </div>

    
    <div class="ipl-right-panel">
      
      
      <div id="theory-knowledge-card" class="ipl-card">
        <h3 class="ipl-card-title">
          <svg viewBox="0 0 24 24" width="18" height="18" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
          Dynamic Knowledge Base
        </h3>
        
        
        <div class="ipl-tab-row" id="ipl-concept-tabs">
          
        </div>

        
        <div id="concept-details-container" class="ipl-concept-box">
          <div id="concept-details-content">
            
          </div>
        </div>
      </div>

      
      <div id="equation-display-container" class="ipl-card ipl-eq-card">
        <div class="ipl-card-badge">Algebraic Proof Face</div>
        <h4 class="ipl-card-sub-title">Active Mathematical Statement</h4>
        
        <div id="math-display" class="ipl-math-display">
          
        </div>

        <p class="ipl-help-text">
          <svg viewBox="0 0 24 24" width="10" height="10" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
          Anchor nodes: click any <span class="ipl-underline-dashed">underlined algebraic sequence</span> above to toggle detailed tutoring.
        </p>
      </div>

      
      <div id="log-mean-calculator-widget" class="ipl-card">
        <h4 class="ipl-card-title-small">
          <svg viewBox="0 0 24 24" width="15" height="15" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
          Erbar-Maas Edge Mobility Calculator
        </h4>
        <p class="ipl-widget-desc">
          Continuous entropy trajectories evaluate edge weights using the Logarithmic Mean Λ(p_i, p_j). Compute live values between hypothetical state density distributions:
        </p>
        
        <div class="ipl-calc-row">
          <div class="ipl-calc-col">
            <span class="ipl-calc-label">DENSITY P_A:</span>
            <div class="ipl-calc-slider-wrapper">
              <span class="ipl-calc-bound">0.05</span>
              <input 
                id="calc-slider-a"
                type="range"
                min="0.05"
                max="0.95"
                step="0.05"
                value="0.65"
                disabled
                class="ipl-range-slider-mini"
              />
              <span class="ipl-calc-bound">0.95</span>
            </div>
            <div class="ipl-calc-display-box" id="calc-display-a">
              p_A = 0.650
            </div>
          </div>

          <div class="ipl-calc-divider">↔</div>

          <div class="ipl-calc-col">
            <span class="ipl-calc-label">DENSITY P_B:</span>
            <div class="ipl-calc-slider-wrapper">
              <span class="ipl-calc-bound">0.05</span>
              <input 
                id="calc-slider-b"
                type="range"
                min="0.05"
                max="0.95"
                step="0.05"
                value="0.25"
                disabled
                class="ipl-range-slider-mini"
              />
              <span class="ipl-calc-bound">0.95</span>
            </div>
            <div class="ipl-calc-display-box" id="calc-display-b">
              p_B = 0.250
            </div>
          </div>
        </div>

        <div class="ipl-calc-result-box">
          <span class="ipl-calc-result-label">Λ(p_A, p_B) = </span>
          <span id="ipl-calc-result-value" class="ipl-calc-result-value">0.417237</span>
        </div>
      </div>

    </div>

  </div>

  
  <div id="tutor-discussion-drawer" class="ipl-drawer ipl-hidden">
    
    <div class="ipl-drawer-left">
      <div class="ipl-drawer-meta-section">
        <span class="ipl-drawer-eyebrow">Active Mathematical Factor</span>
        <h3 id="ipl-drawer-factor-label" class="ipl-drawer-factor-title">Detailed Balance Equation</h3>
        <div class="ipl-drawer-bar"></div>
        <p class="ipl-drawer-role-row">
          ALGEBRAIC ROLE: <span id="ipl-drawer-factor-role" class="value-orange-dark">Symmetric Energy Landscape</span>
        </p>
        <p id="ipl-drawer-factor-details" class="ipl-drawer-details">
          Ensures that microscopic transitions are balanced in equilibrium. In physics, this equates to time-reversal symmetry.
        </p>
      </div>

      
      <button id="btn-close-highlight" class="ipl-btn-primary uppercase-tracking">
        Clear Highlight
      </button>
    </div>

    
    <div class="ipl-drawer-right">
      <div class="ipl-drawer-right-header">
        <h4 class="ipl-drawer-chat-title">
          <svg viewBox="0 0 24 24" width="16" height="16" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
          Algebraic Tutor & Q&A Discussion
        </h4>
        <span class="ipl-drawer-chat-badge">VIRTUAL COACH</span>
      </div>

      
      <div id="comment-chat-history" class="ipl-chat-history">
        
      </div>

      
      <div id="faq-shortcuts-area" class="ipl-faq-section">
        <span class="ipl-faq-header">Direct Explanatory Inquiries:</span>
        <div id="ipl-faq-list" class="ipl-faq-list">
          
        </div>
      </div>

      
      <form id="ipl-chat-form" class="ipl-chat-form">
        <input
          id="custom-math-query-input"
          type="text"
          placeholder="Ask a custom question regarding this theorem structure..."
          class="ipl-chat-input"
          autocomplete="off"
        />
        <button id="btn-submit-tutor" type="submit" class="ipl-btn-primary uppercase-tracking flex-center gap-1">
          <svg viewBox="0 0 24 24" width="12" height="12" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>
          Send
        </button>
      </form>
    </div>
  </div>

  
  <div id="standby-notice-container" class="ipl-standby-notice">
    <div class="ipl-standby-left">
      <div class="ipl-standby-icon-box">
        <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round" class="ipl-pulse-fast"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><line x1="9" y1="18" x2="15" y2="18"></line><line x1="10" y1="22" x2="14" y2="22"></line></svg>
      </div>
      <div>
        <h4 class="ipl-standby-title">Click Algebraic Statements to Discuss</h4>
        <p class="ipl-standby-desc">
          We have embedded active highlighted anchors inside the math formulations. Click any underlined statement in the active math block to open the interactive discussion tutor.
        </p>
      </div>
    </div>
    <button id="btn-discover-anchor" class="ipl-btn-primary uppercase-tracking flex-center gap-1">
      <svg viewBox="0 0 24 24" width="14" height="14" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
      Quick Demo Highlight
    </button>
  </div>

</div>
<script defer src="/js/interactive-proof.min.be39078ef25af25606a8dbb6bbf27bbee509fe8e86d683f7e51ee9bb32105e92.js" integrity="sha256-vjkHjvJa8lYGqNu2u/J7vuUJ/o6G1oP35R7puzIQXpI="></script>

<hr>
<h2 id="the-mathematical-framework">The Mathematical Framework</h2>
<p>To understand the core details of this singular limit, we can outline the mathematical structures that govern the simulation above:</p>
<h3 id="1-continuous-time-markov-chains-ctmcs">1. Continuous-Time Markov Chains (CTMCs)</h3>
<p>Let our system be defined on a finite state graph with three states $\mathcal{S} = {A, B, C}$. The state distribution $p(t) = [p_A(t), p_B(t), p_C(t)]$ evolves according to the Kolmogorov forward equation:</p>
<p>$$\dot{p}(t) = p(t) Q$$</p>
<p>where $Q$ is the infinitesimal generator matrix satisfying:</p>
<ul>
<li>$Q_{ij} \geq 0$ for all $i \neq j$ (positive transition intensities).</li>
<li>$\sum_{j} Q_{ij} = 0$ (probability conservation).</li>
</ul>
<h3 id="2-detailed-balance-and-gradient-flow">2. Detailed Balance and Gradient Flow</h3>
<p>We assume the unperturbed chain is reversible with respect to a stationary distribution $\pi$, satisfying the detailed balance condition:</p>
<p>$$\pi_i Q_{ij} = \pi_j Q_{ji}$$</p>
<p>Under this symmetry, the linear Markovian evolution can be rewritten as the steepest descent (gradient flow) of the relative entropy:</p>
<p>$$\mathcal{H}(p \mid \pi) = \sum_{i \in \mathcal{S}} p_i \log \frac{p_i}{\pi_i}$$</p>
<p>under the discrete Riemannian metric introduced by Erbar and Maas. The metric tensor equips the probability simplex with a discrete Wasserstein geometry, where the mobility along edge $(i, j)$ is weighted by the <strong>logarithmic mean</strong> of their densities:</p>
<p>$$\Lambda(p_i, p_j) = \frac{p_i - p_j}{\log p_i - \log p_j}$$</p>
<h3 id="3-pearls-graph-surgery-vs-singular-perturbation">3. Pearl&rsquo;s Graph Surgery vs. Singular Perturbation</h3>
<p>A hard intervention forcing the system into state $C$ corresponds to severing incoming rates into $C$:</p>
<p>$$Q_{do} = \begin{pmatrix}</p>
<ul>
<li>(Q_{AB} + 0) &amp; Q_{AB} &amp; 0 \
Q_{BA} &amp; - (Q_{BA} + 0) &amp; 0 \
Q_{CA} &amp; Q_{CB} &amp; - (Q_{CA} + Q_{CB})
\end{pmatrix}$$</li>
</ul>
<p>Alternatively, we model this physically by adding a restorative term $\lambda R$ that forces mass into $C$ with rate parameter $\lambda$:</p>
<p>$$Q_\lambda = Q_{do} + \lambda R_C$$</p>
<p>As $\lambda \to \infty$, the system exhibits two distinct timescales:</p>
<ol>
<li><strong>Fast transient phase ($O(1/\lambda)$):</strong> Any arbitrary initial probability mass collapses onto the intervention face (State $C$) via a projection operator $\Pi_C$.</li>
<li><strong>Slow evolutionary phase:</strong> The remaining probability mass evolves under the projected slow dynamics $\Pi_C Q_{do} \Pi_C$ constrained to the target subspace.</li>
</ol>
<p>The equivalence is established via:</p>
<p>$$\lim_{\lambda \to \infty} e^{t Q_\lambda} = \Pi_C e^{t \Pi_C Q_{do} \Pi_C}$$</p>
<p>proving that causal graph surgery is the exact singular limit of physical restoration.</p>
]]></content:encoded></item></channel></rss>