<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.4 20241031//EN" "JATS-journalpublishing1-4.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="1.4" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">ojapps</journal-id>
      <journal-title-group>
        <journal-title>Open Journal of Applied Sciences</journal-title>
      </journal-title-group>
      <issn pub-type="epub">2165-3925</issn>
      <issn pub-type="ppub">2165-3917</issn>
      <publisher>
        <publisher-name>Scientific Research Publishing</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.4236/ojapps.2026.1610227</article-id>
      <article-id pub-id-type="publisher-id">ojapps-155033</article-id>
      <article-categories>
        <subj-group>
          <subject>Article</subject>
        </subj-group>
        <subj-group>
          <subject>Biomedical</subject>
          <subject>Life Sciences</subject>
          <subject>Chemistry</subject>
          <subject>Materials Science</subject>
          <subject>Computer Science</subject>
          <subject>Communications</subject>
          <subject>Engineering</subject>
          <subject>Physics</subject>
          <subject>Mathematics</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>A Methodology for Constructing and Verifying Solid Boundaries Using Parametric Surfaces in GeoGebra 3D</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <contrib-id contrib-id-type="orcid">0009-0008-0736-8429</contrib-id>
          <name name-style="western">
            <surname>López-Sánchez</surname>
            <given-names>Rubi C.</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="yes">
          <contrib-id contrib-id-type="orcid">0000-0002-8780-4401</contrib-id>
          <name name-style="western">
            <surname>Zaragoza-Grifé</surname>
            <given-names>Jesús N.</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <contrib-id contrib-id-type="orcid">0000-0001-6823-7272</contrib-id>
          <name name-style="western">
            <surname>Vales-Pinzón</surname>
            <given-names>Caridad G.</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <contrib-id contrib-id-type="orcid">0000-0002-3940-7153</contrib-id>
          <name name-style="western">
            <surname>Corona-Suarez</surname>
            <given-names>Gilberto A.</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
      </contrib-group>
      <aff id="aff1"><label>1</label> Faculty of Engineering, Autonomous University of Yucatan, Merida, Mexico </aff>
      <author-notes>
        <fn fn-type="conflict" id="fn-conflict">
          <p>The authors declare no conflicts of interest regarding the publication of this paper.</p>
        </fn>
      </author-notes>
      <pub-date pub-type="epub">
        <day>08</day>
        <month>10</month>
        <year>2026</year>
      </pub-date>
      <pub-date pub-type="collection">
        <month>10</month>
        <year>2026</year>
      </pub-date>
      <volume>16</volume>
      <issue>10</issue>
      <fpage>4142</fpage>
      <lpage>4182</lpage>
      <history>
        <date date-type="received">
          <day>20</day>
          <month>09</month>
          <year>2026</year>
        </date>
        <date date-type="accepted">
          <day>27</day>
          <month>10</month>
          <year>2026</year>
        </date>
        <date date-type="published">
          <day>30</day>
          <month>10</month>
          <year>2026</year>
        </date>
      </history>
      <permissions>
        <copyright-statement>© 2026 by the authors and Scientific Research Publishing Inc.</copyright-statement>
        <copyright-year>2026</copyright-year>
        <license license-type="open-access">
          <license-p> This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license ( <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link> ). </license-p>
        </license>
      </permissions>
      <self-uri content-type="doi" xlink:href="https://doi.org/10.4236/ojapps.2026.1610227">https://doi.org/10.4236/ojapps.2026.1610227</self-uri>
      <abstract>
        <p>This paper presents a manual construction protocol for boundaries of solids between two height functions over a planar region. It links inequalities, rectangular parameter domains, floor and roof lifts, and walls on actual contours. Boundary coverage is justified mathematically. Three original examples and eleven textbook exercises form a fourteen-case set whose methodological coverage and case-specific geometric acceptance conditions are explicit. According to consolidated author observations, all fourteen cases were opened, reconstructed from commands, inspected, saved, and reopened without incidents in GeoGebra Classic 6.0.920.0 on Windows 10 Home during September 3-15, 2026. No contemporaneous operation-level log or invariant-level inspection results were supplied. Fourteen screenshots, analytical integral checks, complete commands, and versioned construction files are provided; the supplement identifies the observations as retrospective. The contribution distinguishes actual contours from auxiliary partitions and seams, and positive-height joins from zero-height contacts. The reported 14/14 outcome applies only to the declared set and environment; it establishes neither independent reproduction nor educational effectiveness. The explicit protocol supports separately documented replay and future classroom evaluation.</p>
      </abstract>
      <kwd-group kwd-group-type="author-generated" xml:lang="en">
        <kwd>Parametric Surfaces</kwd>
        <kwd>Coordinate-Simple Solids</kwd>
        <kwd>GeoGebra 3D</kwd>
        <kwd>Multivariable Calculus</kwd>
        <kwd>Triangulation</kwd>
        <kwd>Mathematical Visualization</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec1">
      <title>1. Introduction</title>
      <p>Formulating a multiple integral requires identifying both the integrand and the region of integration. In three-dimensional problems, this task involves relating surface equations, planar projections, and integration limits. The treatment of integrals over general regions and solids described by inequalities between functions provides the mathematical basis for this relationship [<xref ref-type="bibr" rid="B1">1</xref>] (Sections 5.2 and 5.4).</p>
      <p>In mathematics education, Duval [<xref ref-type="bibr" rid="B2">2</xref>] distinguishes transformations within a representation register from conversions between registers. For the problem considered here, manipulating inequalities is not equivalent to interpreting their spatial representation. Arcavi [<xref ref-type="bibr" rid="B3">3</xref>] examines the roles of visualization in mathematical activity and the difficulties it can also introduce. These perspectives support activities connecting expressions, parameterizations, and figures, without assuming that viewing an image alone produces conceptual understanding.</p>
      <p>Directly related studies already exist. de Carvalho <italic>et al</italic>. [<xref ref-type="bibr" rid="B4">4</xref>] present GeoGebra constructions for double integrals, emphasizing Riemann sums in two variables. Linares-Rodríguez <italic>et al</italic>. [<xref ref-type="bibr" rid="B5">5</xref>] describe a Maple interface for visualizing solids, their projections, and the faces associated with triple integrals. Consequently, using software to represent integration regions is not a novel contribution.</p>
      <p>This study proposes a more specific methodological contribution: organizing the construction of the boundary of a solid from a parameterized planar region while preserving the distinction between actual contours, auxiliary subdivisions, and surfaces that bound the region. The sequence includes domain-coverage criteria, matching-edge checks, and integral verification. The purpose is not merely to obtain an image, but to explain what each object represents and why it belongs to the boundary.</p>
      <p>GeoGebra provides commands for creating parametric surfaces and curves with independent parameter ranges [<xref ref-type="bibr" rid="B6">6</xref>][<xref ref-type="bibr" rid="B7">7</xref>]. In this paper, the software is described as freely accessible for noncommercial use. Its official license distinguishes source code from installers, services, and other components; therefore, access to the complete product at no cost is not equated with free software in the strict licensing sense [<xref ref-type="bibr" rid="B8">8</xref>].</p>
      <p>The objective is to formulate a reproducible methodology for constructing and verifying boundaries of solids that are simple with respect to <inline-formula><mml:math><mml:mi> z </mml:mi></mml:math></inline-formula> , with proposed applications to multivariable differential calculus, multiple integration, and vector analysis. The guiding question is as follows: How can a planar description and two height functions be transformed into a collection of surfaces and curves whose union represents the complete solid boundary without introducing artificial interior walls?</p>
    </sec>
    <sec id="sec2">
      <title>2. Problem Definition</title>
      <p>Let <inline-formula><mml:math><mml:mrow><mml:mi> D </mml:mi><mml:mo> ⊂ </mml:mo><mml:msup><mml:mi> ℝ </mml:mi><mml:mn> 2 </mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> be the closure of a bounded planar region with nonempty interior and a boundary consisting of finitely many simple closed, piecewise-regular curves. Interior boundary components enclosing holes are allowed. Let <inline-formula><mml:math><mml:mrow><mml:mi> g </mml:mi><mml:mo> , </mml:mo><mml:mi> f </mml:mi><mml:mo> : </mml:mo><mml:mi> D </mml:mi><mml:mo> → </mml:mo><mml:mi> ℝ </mml:mi></mml:mrow></mml:math></inline-formula> be continuous functions satisfying <inline-formula><mml:math><mml:mrow><mml:mi> g </mml:mi><mml:mo> ≤ </mml:mo><mml:mi> f </mml:mi></mml:mrow></mml:math></inline-formula> on <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> g </mml:mi><mml:mo> &lt; </mml:mo><mml:mi> f </mml:mi></mml:mrow></mml:math></inline-formula> in the interior of <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> . Consider the solid</p>
      <disp-formula id="FD1">
        <label>(1)</label>
        <mml:math>
          <mml:mrow>
            <mml:mi>Ω</mml:mi>
            <mml:mo>=</mml:mo>
            <mml:mrow>
              <mml:mo>{</mml:mo>
              <mml:mrow>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mi>x</mml:mi>
                    <mml:mo>,</mml:mo>
                    <mml:mi>y</mml:mi>
                    <mml:mo>,</mml:mo>
                    <mml:mi>z</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>∈</mml:mo>
                <mml:msup>
                  <mml:mi>ℝ</mml:mi>
                  <mml:mn>3</mml:mn>
                </mml:msup>
                <mml:mo>:</mml:mo>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mi>x</mml:mi>
                    <mml:mo>,</mml:mo>
                    <mml:mi>y</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>∈</mml:mo>
                <mml:mi>D</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>g</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mi>x</mml:mi>
                    <mml:mo>,</mml:mo>
                    <mml:mi>y</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>≤</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>≤</mml:mo>
                <mml:mi>f</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mi>x</mml:mi>
                    <mml:mo>,</mml:mo>
                    <mml:mi>y</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>}</mml:mo>
            </mml:mrow>
            <mml:mo>.</mml:mo>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>The differentiability required for derivatives, areas, and fluxes is assumed on each relevant patch. The height functions in the three main examples are polynomials; a trigonometric parameterization is introduced in the additional horizontal-cylinder case. The lower graph over <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> is called the floor, the upper graph is called the roof, and the vertical surfaces along the actual contour are called the walls. These are geometric descriptions: the floor need not coincide with <italic>z</italic> = 0 or be planar.</p>
      <p>The problem is to construct parametric patches whose union is <inline-formula><mml:math><mml:mrow><mml:mo> ∂ </mml:mo><mml:mi> Ω </mml:mi></mml:mrow></mml:math></inline-formula> , together with the curves where the boundary components meet. It does not require a native volumetric object, Boolean operations, or a finite-element mesh. The represented boundary mathematically delimits the solid but should not be confused with a solid model in a computer-aided design (CAD) system.</p>
      <p>The scope is restricted to regions whose intersection with each vertical line is empty or a single interval. A solid with several separated vertical intervals requires further decomposition; some regions may be simplified by changing the projection direction. The procedure does not automatically solve the surface intersections that determine <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> : identifying them remains part of the mathematical formulation.</p>
      <p>Extension by subregion. When the floor and roof coincide at interior points of the global base, the main result is applied to subdomains in which the height is strictly positive at interior points. In E10, with roof <italic>z</italic> = <italic>x</italic><sup>2</sup> and floor <italic>z</italic> = 0, the halves <italic>x</italic> ≤ 0 and <italic>x</italic> ≥ 0 are treated separately. The contact set <italic>x</italic> = <italic>z</italic> = 0 has zero height and generates no wall. This extension does not justify retaining partition walls where the height is positive; such walls must be excluded from the boundary of the combined set.</p>
    </sec>
    <sec id="sec3">
      <title>3. Theoretical Framework</title>
      <sec id="sec3dot1">
        <title>3.1. From the Planar Domain to the Height Surfaces</title>
        <p>A parametric surface is expressed by a mapping <inline-formula><mml:math><mml:mrow><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> r </mml:mi></mml:mstyle><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> t </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> X </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> t </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> , </mml:mo><mml:mi> Y </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> t </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> , </mml:mo><mml:mi> Z </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> t </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> . Where <inline-formula><mml:math><mml:mrow><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> r </mml:mi></mml:mstyle><mml:mi> s </mml:mi></mml:msub><mml:mo> × </mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> r </mml:mi></mml:mstyle><mml:mi> t </mml:mi></mml:msub><mml:mo> ≠ </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> , its derivatives determine a tangent plane and a normal direction. Surface integrals are formulated from this representation [<xref ref-type="bibr" rid="B1">1</xref>] (Section 6.6).</p>
        <p>Suppose a family of mappings <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> ϕ </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> X </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> , </mml:mo><mml:msub><mml:mi> Y </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> : </mml:mo><mml:msub><mml:mi> Q </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> → </mml:mo><mml:msub><mml:mi> D </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> covers the base, where <inline-formula><mml:math><mml:mrow><mml:mi> D </mml:mi><mml:mo> = </mml:mo><mml:mstyle displaystyle="true"><mml:msub><mml:mo> ∪ </mml:mo><mml:mi> i </mml:mi></mml:msub><mml:mrow><mml:msub><mml:mi> D </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:mstyle></mml:mrow></mml:math></inline-formula> and the interiors of the subdomains do not overlap. The parameter domains <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> Q </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are rectangular. The lower and upper lifts are defined as</p>
        <disp-formula id="FD2">
          <label>(2)</label>
          <mml:math>
            <mml:mrow>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>S</mml:mi>
                </mml:mstyle>
                <mml:mi>i</mml:mi>
                <mml:mi>g</mml:mi>
              </mml:msubsup>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>X</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:msub>
                    <mml:mi>Y</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>g</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>X</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                      <mml:mo>,</mml:mo>
                      <mml:msub>
                        <mml:mi>Y</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>S</mml:mi>
                </mml:mstyle>
                <mml:mi>i</mml:mi>
                <mml:mi>f</mml:mi>
              </mml:msubsup>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>X</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:msub>
                    <mml:mi>Y</mml:mi>
                    <mml:mi>i</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>f</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>X</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                      <mml:mo>,</mml:mo>
                      <mml:msub>
                        <mml:mi>Y</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Composition with <inline-formula><mml:math><mml:mi> f </mml:mi></mml:math></inline-formula> and <inline-formula><mml:math><mml:mi> g </mml:mi></mml:math></inline-formula> restricts the surfaces to the parameterized base. The domain is triangulated or partitioned; the surface is not replaced by interpolating planes. If <inline-formula><mml:math><mml:mi> f </mml:mi></mml:math></inline-formula> is nonlinear, evaluating <inline-formula><mml:math><mml:mrow><mml:mi> f </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> X </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> , </mml:mo><mml:msub><mml:mi> Y </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> preserves the exact mathematical graph, whereas interpolating only the vertex heights defines a different surface. The software renders a discretization of that mathematical definition; the rendered image is not proof of geometric exactness.</p>
      </sec>
      <sec id="sec3dot2">
        <title>3.2. Parameterizing the Base</title>
        <p>For a region between two graphs,</p>
        <disp-formula id="FD3">
          <mml:math>
            <mml:mrow>
              <mml:mi>D</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>{</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mi>x</mml:mi>
                      <mml:mo>,</mml:mo>
                      <mml:mi>y</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>:</mml:mo>
                  <mml:mi>a</mml:mi>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>x</mml:mi>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>b</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>α</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>x</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>y</mml:mi>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>β</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>x</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>}</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>one may use <inline-formula><mml:math><mml:mrow><mml:mi> X </mml:mi><mml:mo> = </mml:mo><mml:mi> a </mml:mi><mml:mo> + </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> b </mml:mi><mml:mo> − </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mi> s </mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> Y </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> t </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mi> α </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mi> X </mml:mi><mml:mo> ) </mml:mo></mml:mrow><mml:mo> + </mml:mo><mml:mi> t </mml:mi><mml:mi> β </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mi> X </mml:mi><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , with <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> t </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> ∈ </mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> ] </mml:mo></mml:mrow></mml:mrow><mml:mn> 2 </mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> . The Jacobian is <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> b </mml:mi><mml:mo> − </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:mi> β </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mi> X </mml:mi><mml:mo> ) </mml:mo></mml:mrow><mml:mo> − </mml:mo><mml:mi> α </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mi> X </mml:mi><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> ] </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> . This converts dependent limits into independent intervals. The relationship between the domain description and the change of variables is developed in [<xref ref-type="bibr" rid="B1">1</xref>] (Sections 5.2 and 5.7).</p>
        <p>A type II region can also be parameterized directly:</p>
        <disp-formula id="FD4">
          <mml:math>
            <mml:mrow>
              <mml:mi>D</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>{</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mi>x</mml:mi>
                      <mml:mo>,</mml:mo>
                      <mml:mi>y</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>:</mml:mo>
                  <mml:mi>a</mml:mi>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>y</mml:mi>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>b</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>ℓ</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>y</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>x</mml:mi>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>r</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>y</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>}</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD5">
          <mml:math>
            <mml:mrow>
              <mml:mi>ϕ</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:mi>s</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mi>ℓ</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>t</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>+</mml:mo>
                  <mml:mi>s</mml:mi>
                  <mml:mi>r</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>t</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>a</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mi>b</mml:mi>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The parameterization is selected before decomposition: exact transverse interpolation is used between two graphs; Equation (3) is used for a triangle; a verified partition is used for concave polygons; and polar coordinates are used for disks or annuli. If the height vanishes in the interior, the need for decomposition into subregions is assessed first. Triangulation is not prescribed when direct parameterization is sufficient.</p>
        <p>For a triangle with noncollinear vertices <inline-formula><mml:math><mml:mrow><mml:mi> P </mml:mi><mml:mo> , </mml:mo><mml:mi> Q </mml:mi><mml:mo> , </mml:mo><mml:mi> R </mml:mi></mml:mrow></mml:math></inline-formula> , barycentric coordinates express each point as <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> λ </mml:mi><mml:mn> 0 </mml:mn></mml:msub><mml:mi> P </mml:mi><mml:mo> + </mml:mo><mml:msub><mml:mi> λ </mml:mi><mml:mn> 1 </mml:mn></mml:msub><mml:mi> Q </mml:mi><mml:mo> + </mml:mo><mml:msub><mml:mi> λ </mml:mi><mml:mn> 2 </mml:mn></mml:msub><mml:mi> R </mml:mi></mml:mrow></mml:math></inline-formula> , with nonnegative coefficients summing to one. Set</p>
        <disp-formula id="FD6">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>λ</mml:mi>
                <mml:mn>0</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>λ</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>λ</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>to obtain the transformation</p>
        <disp-formula id="FD7">
          <label>(3)</label>
          <mml:math>
            <mml:mrow>
              <mml:mi>ϕ</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mi>P</mml:mi>
              <mml:mo>+</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mi>Q</mml:mi>
              <mml:mo>+</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mi>t</mml:mi>
              <mml:mi>R</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Up to changes of variables and vertex ordering, this square-to-triangle map is equivalent to Duffy-type transformations used in numerical integration [<xref ref-type="bibr" rid="B9">9</xref>][<xref ref-type="bibr" rid="B10">10</xref>]. Here, it is adapted to construct surfaces with independent parameter ranges.</p>
        <p>The coefficients in Equation (3) are nonnegative and sum to one, so the image lies within the triangle. Conversely, for any point with barycentric coordinates <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> λ </mml:mi><mml:mn> 0 </mml:mn></mml:msub><mml:mo> , </mml:mo><mml:msub><mml:mi> λ </mml:mi><mml:mn> 1 </mml:mn></mml:msub><mml:mo> , </mml:mo><mml:msub><mml:mi> λ </mml:mi><mml:mn> 2 </mml:mn></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> satisfying <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> λ </mml:mi><mml:mn> 1 </mml:mn></mml:msub><mml:mo> &lt; </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> , choose <inline-formula><mml:math><mml:mrow><mml:mi> s </mml:mi><mml:mo> = </mml:mo><mml:msub><mml:mi> λ </mml:mi><mml:mn> 1 </mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> t </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi> λ </mml:mi><mml:mn> 2 </mml:mn></mml:msub></mml:mrow><mml:mo> / </mml:mo><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:msub><mml:mi> λ </mml:mi><mml:mn> 1 </mml:mn></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula> . Vertex <inline-formula><mml:math><mml:mi> Q </mml:mi></mml:math></inline-formula> is obtained with <inline-formula><mml:math><mml:mrow><mml:mi> s </mml:mi><mml:mo> = </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> . Hence, the image is the entire triangle.</p>
        <p>The corresponding determinant is</p>
        <disp-formula id="FD8">
          <label>(4)</label>
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>J</mml:mi>
                <mml:mi>ϕ</mml:mi>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mtext>det</mml:mtext>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>Q</mml:mi>
                  <mml:mo>−</mml:mo>
                  <mml:mi>P</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>R</mml:mi>
                  <mml:mo>−</mml:mo>
                  <mml:mi>P</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The transformation is regular in the interior, but the edge <inline-formula><mml:math><mml:mrow><mml:mi> s </mml:mi><mml:mo> = </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> collapses to <inline-formula><mml:math><mml:mi> Q </mml:mi></mml:math></inline-formula> . It is not a diffeomorphism of the closed square. This degeneracy is confined to the parameter boundary and must be recognized when discussing normals or changes of variables; it does not prevent coverage of the triangle.</p>
        <p>A simple polygonal base can be decomposed into triangles with disjoint interiors. Polygon triangulation and its algorithms are discussed in de Berg <italic>et al</italic>. [<xref ref-type="bibr" rid="B11">11</xref>] (Chapter 3). For a concave base, an arbitrary fan of diagonals must not be assumed to remain inside the polygon. Containment, non-overlap, and coverage must be checked. Equality of areas alone does not replace these checks.</p>
      </sec>
      <sec id="sec3dot3">
        <title>3.3. Walls, Edges, and Boundary Coverage</title>
        <p>Let <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> γ </mml:mi><mml:mi> j </mml:mi></mml:msub><mml:mrow><mml:mo> ( </mml:mo><mml:mi> τ </mml:mi><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> a </mml:mi><mml:mi> j </mml:mi></mml:msub><mml:mrow><mml:mo> ( </mml:mo><mml:mi> τ </mml:mi><mml:mo> ) </mml:mo></mml:mrow><mml:mo> , </mml:mo><mml:msub><mml:mi> b </mml:mi><mml:mi> j </mml:mi></mml:msub><mml:mrow><mml:mo> ( </mml:mo><mml:mi> τ </mml:mi><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> parameterize a portion of the actual contour of <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> . The associated wall is obtained by vertical interpolation:</p>
        <disp-formula id="FD9">
          <label>(5)</label>
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>W</mml:mi>
                </mml:mstyle>
                <mml:mi>j</mml:mi>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>τ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>q</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>a</mml:mi>
                    <mml:mi>j</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:msub>
                    <mml:mi>b</mml:mi>
                    <mml:mi>j</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:mi>q</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mi>g</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>a</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                      <mml:mo>,</mml:mo>
                      <mml:msub>
                        <mml:mi>b</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>+</mml:mo>
                  <mml:mi>q</mml:mi>
                  <mml:mi>f</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>a</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                      <mml:mo>,</mml:mo>
                      <mml:msub>
                        <mml:mi>b</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>q</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The settings <inline-formula><mml:math><mml:mrow><mml:mi> q </mml:mi><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> q </mml:mi><mml:mo> = </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> recover the lower and upper boundary curves, respectively:</p>
        <disp-formula id="FD10">
          <label>(6)</label>
          <mml:math>
            <mml:mrow>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>C</mml:mi>
                </mml:mstyle>
                <mml:mi>j</mml:mi>
                <mml:mi>g</mml:mi>
              </mml:msubsup>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mi>τ</mml:mi>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>a</mml:mi>
                    <mml:mi>j</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:msub>
                    <mml:mi>b</mml:mi>
                    <mml:mi>j</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>g</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>a</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                      <mml:mo>,</mml:mo>
                      <mml:msub>
                        <mml:mi>b</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>C</mml:mi>
                </mml:mstyle>
                <mml:mi>j</mml:mi>
                <mml:mi>f</mml:mi>
              </mml:msubsup>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mi>τ</mml:mi>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>a</mml:mi>
                    <mml:mi>j</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:msub>
                    <mml:mi>b</mml:mi>
                    <mml:mi>j</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mi>f</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>a</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                      <mml:mo>,</mml:mo>
                      <mml:msub>
                        <mml:mi>b</mml:mi>
                        <mml:mi>j</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>At each vertex of a polygonal contour, the vertical segment between the lower and upper heights may be added. If the heights coincide, the segment reduces to a point and is not a vertical edge of positive length. A smooth closed contour has no vertices requiring vertical edges.</p>
        <p>Boundary-coverage proposition. Under the assumptions of Section 2, if the images of <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> ϕ </mml:mi><mml:mi> i </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> cover <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> and the curves <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> γ </mml:mi><mml:mi> j </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> cover <inline-formula><mml:math><mml:mrow><mml:mo> ∂ </mml:mo><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> , then</p>
        <disp-formula id="FD11">
          <label>(7)</label>
          <mml:math>
            <mml:mrow>
              <mml:mo>∂</mml:mo>
              <mml:mi>Ω</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:munder>
                  <mml:mo>∪</mml:mo>
                  <mml:mi>i</mml:mi>
                </mml:munder>
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mstyle mathvariant="bold" mathsize="normal">
                      <mml:mi>S</mml:mi>
                    </mml:mstyle>
                    <mml:mi>i</mml:mi>
                    <mml:mi>g</mml:mi>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>Q</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>∪</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:munder>
                  <mml:mo>∪</mml:mo>
                  <mml:mi>i</mml:mi>
                </mml:munder>
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mstyle mathvariant="bold" mathsize="normal">
                      <mml:mi>S</mml:mi>
                    </mml:mstyle>
                    <mml:mi>i</mml:mi>
                    <mml:mi>f</mml:mi>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msub>
                        <mml:mi>Q</mml:mi>
                        <mml:mi>i</mml:mi>
                      </mml:msub>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>∪</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:munder>
                  <mml:mo>∪</mml:mo>
                  <mml:mi>j</mml:mi>
                </mml:munder>
                <mml:mrow>
                  <mml:msub>
                    <mml:mstyle mathvariant="bold" mathsize="normal">
                      <mml:mi>W</mml:mi>
                    </mml:mstyle>
                    <mml:mi>j</mml:mi>
                  </mml:msub>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Proof. The continuity of <inline-formula><mml:math><mml:mi> f </mml:mi></mml:math></inline-formula> and <inline-formula><mml:math><mml:mi> g </mml:mi></mml:math></inline-formula> , together with the compactness of <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> , implies that <inline-formula><mml:math><mml:mi> Ω </mml:mi></mml:math></inline-formula> is closed. A point satisfying <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> ∈ </mml:mo><mml:msup><mml:mi> D </mml:mi><mml:mo> ∘ </mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> g </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> &lt; </mml:mo><mml:mi> z </mml:mi><mml:mo> &lt; </mml:mo><mml:mi> f </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is an interior point: continuity preserves the strict inequalities in a sufficiently small neighborhood. In contrast, a point with <inline-formula><mml:math><mml:mrow><mml:mi> z </mml:mi><mml:mo> = </mml:mo><mml:mi> f </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math><mml:mrow><mml:mi> z </mml:mi><mml:mo> = </mml:mo><mml:mi> g </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is not interior, because a vertical displacement in an appropriate direction leaves the solid. A point whose projection lies on <inline-formula><mml:math><mml:mrow><mml:mo> ∂ </mml:mo><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> is also not interior, because every neighborhood of its projection contains points outside <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> . Thus, the boundary consists precisely of the two graphs and the vertical intervals over <inline-formula><mml:math><mml:mrow><mml:mo> ∂ </mml:mo><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> . Equations (2) and (5) cover these sets. The component surfaces may share edges or contact points without affecting this equality.</p>
        <p>The proposition explains why walls are not constructed over every triangulation edge. An interior edge merely separates two parameterizations of the same base. Lifting it into a wall would add a surface that, except for particular degeneracies, does not belong to <inline-formula><mml:math><mml:mrow><mml:mo> ∂ </mml:mo><mml:mi> Ω </mml:mi></mml:mrow></mml:math></inline-formula> .</p>
      </sec>
      <sec id="sec3dot4">
        <title>3.4. Jacobians, Orientation, and Integral Quantities</title>
        <p>The volume is calculated from the difference between the height functions. For parameterizations that are injective in the interior, with overlaps restricted to sets of zero area,</p>
        <disp-formula id="FD12">
          <label>(8)</label>
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msub>
                    <mml:mo>∬</mml:mo>
                    <mml:mi>D</mml:mi>
                  </mml:msub>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:mo>(</mml:mo>
                      <mml:mrow>
                        <mml:mi>f</mml:mi>
                        <mml:mo>−</mml:mo>
                        <mml:mi>g</mml:mi>
                      </mml:mrow>
                      <mml:mo>)</mml:mo>
                    </mml:mrow>
                    <mml:mtext>
                       
                    </mml:mtext>
                    <mml:mtext>d</mml:mtext>
                    <mml:mi>A</mml:mi>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:msub>
                  <mml:mo>∑</mml:mo>
                  <mml:mi>i</mml:mi>
                </mml:msub>
                <mml:mrow>
                  <mml:mstyle displaystyle="true">
                    <mml:mrow>
                      <mml:msub>
                        <mml:mo>∬</mml:mo>
                        <mml:mrow>
                          <mml:msub>
                            <mml:mi>Q</mml:mi>
                            <mml:mi>i</mml:mi>
                          </mml:msub>
                        </mml:mrow>
                      </mml:msub>
                      <mml:mrow>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:mi>f</mml:mi>
                            <mml:mo>−</mml:mo>
                            <mml:mi>g</mml:mi>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:msub>
                              <mml:mi>X</mml:mi>
                              <mml:mi>i</mml:mi>
                            </mml:msub>
                            <mml:mo>,</mml:mo>
                            <mml:msub>
                              <mml:mi>Y</mml:mi>
                              <mml:mi>i</mml:mi>
                            </mml:msub>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                        <mml:mrow>
                          <mml:mo>|</mml:mo>
                          <mml:mrow>
                            <mml:msub>
                              <mml:mi>J</mml:mi>
                              <mml:mrow>
                                <mml:msub>
                                  <mml:mi>ϕ</mml:mi>
                                  <mml:mi>i</mml:mi>
                                </mml:msub>
                              </mml:mrow>
                            </mml:msub>
                          </mml:mrow>
                          <mml:mo>|</mml:mo>
                        </mml:mrow>
                        <mml:mtext>d</mml:mtext>
                        <mml:mi>s</mml:mi>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:mtext>d</mml:mtext>
                        <mml:mi>t</mml:mi>
                      </mml:mrow>
                    </mml:mrow>
                  </mml:mstyle>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The absolute value of the Jacobian prevents an orientation reversal from being mistaken for a negative volume. This expression follows from the change-of-variables formula for multiple integrals [<xref ref-type="bibr" rid="B1">1</xref>] (Section 5.7).</p>
        <p>For the roof, the chain rule gives</p>
        <disp-formula id="FD13">
          <label>(9)</label>
          <mml:math>
            <mml:mrow>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>S</mml:mi>
                </mml:mstyle>
                <mml:mi>s</mml:mi>
                <mml:mi>f</mml:mi>
              </mml:msubsup>
              <mml:mo>×</mml:mo>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>S</mml:mi>
                </mml:mstyle>
                <mml:mi>t</mml:mi>
                <mml:mi>f</mml:mi>
              </mml:msubsup>
              <mml:mo>=</mml:mo>
              <mml:msub>
                <mml:mi>J</mml:mi>
                <mml:mi>ϕ</mml:mi>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mo>−</mml:mo>
                  <mml:msub>
                    <mml:mi>f</mml:mi>
                    <mml:mi>x</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mo>−</mml:mo>
                  <mml:msub>
                    <mml:mi>f</mml:mi>
                    <mml:mi>y</mml:mi>
                  </mml:msub>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>When <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> J </mml:mi><mml:mi> ϕ </mml:mi></mml:msub><mml:mo> &gt; </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> , this cross-product points upward and defines the outward orientation of the roof. The floor requires the opposite orientation. If <inline-formula><mml:math><mml:mrow><mml:mi> h </mml:mi><mml:mo> = </mml:mo><mml:mi> f </mml:mi><mml:mo> − </mml:mo><mml:mi> g </mml:mi></mml:mrow></mml:math></inline-formula> , the normal cross product for a wall is</p>
        <disp-formula id="FD14">
          <label>(10)</label>
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>W</mml:mi>
                </mml:mstyle>
                <mml:mi>τ</mml:mi>
              </mml:msub>
              <mml:mo>×</mml:mo>
              <mml:msub>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>W</mml:mi>
                </mml:mstyle>
                <mml:mi>q</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mi>h</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>γ</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>τ</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msup>
                    <mml:mi>b</mml:mi>
                    <mml:mo>′</mml:mo>
                  </mml:msup>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>τ</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mo>−</mml:mo>
                  <mml:msup>
                    <mml:mi>a</mml:mi>
                    <mml:mo>′</mml:mo>
                  </mml:msup>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mi>τ</mml:mi>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mn>0</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Traversing the contour with <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> on the left makes Equation (10) point outward from the solid. This requires counterclockwise traversal of the outer contour and clockwise traversal of the contours surrounding holes. Where <inline-formula><mml:math><mml:mrow><mml:mi> h </mml:mi><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> , the wall parameterization loses rank; the normal is interpreted only at regular points.</p>
        <p>These relations connect the construction with tangent planes, lateral areas, and flux integrals. For a closed piecewise-regular boundary and a field satisfying the usual assumptions, the divergence theorem relates outward flux to an integral over the volume [<xref ref-type="bibr" rid="B1">1</xref>] (Section 6.8). Mathematical orientation must be checked explicitly: screen shading does not determine the sign of a flux integral.</p>
      </sec>
    </sec>
    <sec id="sec4">
      <title>4. Methodology</title>
      <sec id="sec4dot1">
        <title>4.1. Study Design and Execution Environment</title>
        <p>The study combines mathematical analysis with author-reported operational testing of fourteen cases: three original examples and eleven textbook exercises. The set is purposive and illustrative, not random or exhaustive. Mathematical verification, operation in GeoGebra, and educational evaluation are distinguished; no student intervention or comparison between software packages, groups, or computers is reported.</p>
        <p>Selection rationale. The eleven textbook cases are admissible because their bounded solids can be written as a vertical interval over a planar domain, globally or after the explicit decomposition used in E10; their bases and contour curves admit finitely many explicit parameterizations; and their volumes provide tractable analytical reference values. E04 - E12 retain the contiguous block of Exercises 19 - 27 in [<xref ref-type="bibr" rid="B12">12</xref>], E13 adds a curved-wall case with a zero-height floor-roof edge from the same book, and E14 adds two parabolic walls at constant positive height from [<xref ref-type="bibr" rid="B13">13</xref>].</p>
        <p>Mathematical verification addresses domain coverage, Jacobians, matching traces, volumes, and outward flux in the annular case. <bold>Appendi</bold><bold>x</bold><bold>B</bold> and <bold>Appendix</bold><bold>C</bold> provide reproducible integral checks; exact volumes are analytical reference results, not measurements from screenshots. Operational findings are presented separately as consolidated author observations, supported by supplied construction files and images, rather than as a contemporaneous execution log.</p>
        <p>Jesús N. Zaragoza-Grifé reported performing the tests between September 3 and 15, 2026, in the environment in <bold>Table 1</bold>. He reported successful file opening, reconstruction from commands, geometric inspection, saving, and reopening for all fourteen cases, without incidents. No contemporaneous operation-level log was supplied: exact timestamps, repetition counts, and invariant-by-invariant C3 results are unavailable. <bold>Appendix</bold> tabulates the report retrospectively and explicitly labels each outcome as PASS_REPORTED; it does not reconstruct missing observations.</p>
        <p><bold>Table 1.</bold> Reported execution environment and provenance of the operational observations.</p>
        <table-wrap id="tbl1">
          <label>Table 1</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Field</bold>
                </td>
                <td>
                  <bold>Reported information</bold>
                </td>
              </tr>
              <tr>
                <td>Application</td>
                <td>GeoGebra Classic 6.0.920.0 for Windows</td>
              </tr>
              <tr>
                <td>Operating system</td>
                <td>Windows 10 Home Edition</td>
              </tr>
              <tr>
                <td>Language</td>
                <td>English</td>
              </tr>
              <tr>
                <td>Period</td>
                <td>September 3-15, 2026</td>
              </tr>
              <tr>
                <td>Tester</td>
                <td>Jesús N. Zaragoza-Grifé</td>
              </tr>
              <tr>
                <td>Cases</td>
                <td>14 distinct geometric configurations</td>
              </tr>
              <tr>
                <td>Available evidence</td>
                <td>Consolidated author observations, 14 PNG screenshots, and 14 author-supplied .ggb files; no contemporaneous operation-level log</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p><bold>Table 2.</bold> Case-selection rationale and methodological coverage. Detailed pass/fail conditions are given in <bold>Appendix E</bold>.</p>
        <table-wrap id="tbl2">
          <label>Table 2</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Case/source</bold>
                </td>
                <td>
                  <bold>Condition represented in the validation set</bold>
                </td>
              </tr>
              <tr>
                <td>E01 Original</td>
                <td>Square-to-triangle collapse with strictly positive height; nonlinear roof evaluation.</td>
              </tr>
              <tr>
                <td>E02 Original</td>
                <td>Concavity; patch coverage; exclusion of interior partition walls; isolated zero-height vertex.</td>
              </tr>
              <tr>
                <td>E03 Original</td>
                <td>Hole; periodic angular seam; nonplanar floor; interior-boundary orientation.</td>
              </tr>
              <tr>
                <td>
                  E04 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Type-I curvilinear base; collapsed endpoints with different heights.</td>
              </tr>
              <tr>
                <td>
                  E05 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Type-II curvilinear base; correct ordering of cubic and quadratic bounds.</td>
              </tr>
              <tr>
                <td>
                  E06 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Translated triangle; exact nonlinear roof rather than vertex interpolation.</td>
              </tr>
              <tr>
                <td>
                  E07 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Triangular collapse at a zero-height vertex; nonzero adjacent walls.</td>
              </tr>
              <tr>
                <td>
                  E08 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Entire zero-height boundary edge; tetrahedral closure.</td>
              </tr>
              <tr>
                <td>
                  E09 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Base closure derived from height ordering; zero-height straight edge.</td>
              </tr>
              <tr>
                <td>
                  E10 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Interior zero-height contact; decomposition into two subregions; both signs retained.</td>
              </tr>
              <tr>
                <td>
                  E11 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Cylinder axis parallel to x; first-octant branch; zero-height edge.</td>
              </tr>
              <tr>
                <td>
                  E12 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Quarter-disk polar map; real angular boundaries versus periodic seam; origin collapse.</td>
              </tr>
              <tr>
                <td>
                  E13 [
                  <xref ref-type="bibr" rid="B12">12</xref>
                  ]
                </td>
                <td>Curvilinear base; both signs of y; zero-height floor-roof edge.</td>
              </tr>
              <tr>
                <td>
                  E14 [
                  <xref ref-type="bibr" rid="B13">13</xref>
                  ]
                </td>
                <td>Two parabolic arcs; full signed interval; collapsed base endpoints at positive height.</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>The condition mapping in <bold>Table 2</bold> characterizes the assembled set retrospectively; it is not a preregistered sampling plan. The eleven textbook cases exercise curved bounds, translated triangles, height contacts, decomposition and coordinate restrictions. Concavity and the exclusion of triangulation walls are principally tested by the original E02 example; a hole and a periodic seam are tested by original case E03. The textbook subset is not claimed to cover those features independently. No conclusions are drawn about untested geometries or failure rates outside this set.</p>
      </sec>
      <sec id="sec4dot2">
        <title>4.2. Structure of Reproducible Construction</title>
        <p>This methodology is a manual, mathematically guided construction protocol implemented with GeoGebra commands, not a general algorithm for solving arbitrary surface equations. Users must derive the base patches and their domains, parameterizations of every actual boundary component, the ordering of the height functions, and any decomposition required by concavity, height interchange, or interior zero-height contacts.</p>
        <p>Once those inputs have been established, the lifting and wall formulas are systematic. The construction has four components: the planar region and its contour; the height functions; the patch parameterizations; and the objects representing faces and traces. For a polygonal base, vertices are stored in a closed contour list <inline-formula><mml:math display="inline"><mml:mrow><mml:mi> L </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> P </mml:mi><mml:mn> 1 </mml:mn></mml:msub><mml:mo> , </mml:mo><mml:mo> ⋯ </mml:mo><mml:mo> , </mml:mo><mml:msub><mml:mi> P </mml:mi><mml:mi> m </mml:mi></mml:msub><mml:mo> , </mml:mo><mml:msub><mml:mi> P </mml:mi><mml:mn> 1 </mml:mn></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , while triangles are stored separately in <inline-formula><mml:math display="inline"><mml:mrow><mml:mi> T </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> T </mml:mi><mml:mn> 1 </mml:mn></mml:msub><mml:mo> , </mml:mo><mml:mo> ⋯ </mml:mo><mml:mo> , </mml:mo><mml:msub><mml:mi> T </mml:mi><mml:mi> n </mml:mi></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> . Lists may automate repetition of formulas, but do not derive the mathematical inputs or certify their admissibility.</p>
        <p>The triangulation generates <italic>n</italic> floor patches and <italic>n</italic> roof patches, while the contour generates the walls and edges. If each of the m boundary segments has positive height on some interval, the construction has 2<italic>n</italic> + <italic>m</italic> surface patches before further subdivision. This count excludes curves and auxiliary objects and is not a performance measure. A boundary segment along which the height is identically zero contributes a curve rather than a wall of positive area. For a base with holes, all boundary components must be included.</p>
        <p>This separation makes geometric decisions explicit: changing <inline-formula><mml:math><mml:mi> f </mml:mi></mml:math></inline-formula> or <inline-formula><mml:math><mml:mi> g </mml:mi></mml:math></inline-formula> changes the heights, changing <inline-formula><mml:math><mml:mi> L </mml:mi></mml:math></inline-formula> changes the contour, and changing <inline-formula><mml:math><mml:mi> T </mml:mi></mml:math></inline-formula> changes the partition. Each change requires rechecking coverage, orientation, and height ordering. The complete inputs and commands remain in the paper for reconstruction under C2. Repeating C1, however, requires the distributed file in <bold>Appendix</bold>; printed commands alone cannot reproduce that file-opening claim.</p>
      </sec>
      <sec id="sec4dot3">
        <title>4.3. Construction Sequence</title>
        <p>Stage 1. Formulate the solid. Specify <inline-formula><mml:math><mml:mi> D </mml:mi></mml:math></inline-formula> , <inline-formula><mml:math><mml:mi> g </mml:mi></mml:math></inline-formula> , and <inline-formula><mml:math><mml:mi> f </mml:mi></mml:math></inline-formula> , identify the required intersections, and establish <inline-formula><mml:math><mml:mrow><mml:mi> f </mml:mi><mml:mo> − </mml:mo><mml:mi> g </mml:mi><mml:mo> ≥ </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> over the base. If the surfaces exchange their order, reformulate or partition the region before constructing it. Heights retain their signs: the solid need not lie above the <italic>xy</italic>-plane.</p>
        <p>Stage 2. Parameterize the base and identify its contour. Identify the vertices or curves that delimit the base, any holes, and the direction of traversal. Choose a direct parameterization when the geometry permits; use triangulation for a general polygonal base. Keep auxiliary subdivisions separate from the actual boundary.</p>
        <p>Stage 3. Lift to the floor and roof. Apply Equation (2) to each patch. Enter the three coordinate expressions in the Surface command, using two local parameters with independent finite ranges. Do not create sliders for these local parameters. The documentation excludes <italic>x</italic>, <italic>y</italic>, and <italic>z</italic> as parameter variables;<italic>s</italic>, <italic>t</italic>, <italic>q</italic>, and <italic>r</italic> are used instead [<xref ref-type="bibr" rid="B6">6</xref>].</p>
        <p>Stage 4. Construct walls and edges. Apply Equation (5) only to the actual contour and Equation (6) to the intersections with the floor and roof. The Curve command constructs spatial curves, and the Segment command connects the endpoints of a straight edge. In periodic domains, distinguish the physical boundary from a coordinate seam [<xref ref-type="bibr" rid="B7">7</xref>][<xref ref-type="bibr" rid="B14">14</xref>].</p>
        <p>Stage 5. Organize the visualization. Identify faces by name rather than exclusively by color. Adjust opacity and temporarily hide faces to inspect the interior. The SetFilling command controls opacity between zero and one [<xref ref-type="bibr" rid="B15">15</xref>]; the SetVisibleInView command controls visibility in the 3D view, identified by −1 [<xref ref-type="bibr" rid="B16">16</xref>]. Hiding xOyPlane does not remove the constructed floor patches.</p>
        <p>Stage 6. Verify mathematically. Check coverage without interior overlap, the absence of auxiliary walls, agreement along shared edges, and normal orientation when calculating fluxes. Compare at least one integral quantity with an independent evaluation, not with the appearance of the image.</p>
        <p>Stage 7. Validate interactively and document the results. For a new replay, apply the acceptance conditions in Section 4.5 and <bold>Appendix E</bold>, record each operation and its evidence, resolve incidents, and repeat affected checks. Distinguish these operation-level records from the consolidated author observations available for the earlier tests. A classroom activity can then be prepared without assuming that operational success establishes learning effectiveness.</p>
      </sec>
      <sec id="sec4dot4">
        <title>4.4. Command Entry and Reconstruction from Scratch</title>
        <p>The tests were performed using GeoGebra Classic 6.0.920.0 for Windows, in English. The Algebra and 3D views support entering and inspecting the constructions. Published command names follow the English manual; the Australian English variant uses Interval instead of Segment [<xref ref-type="bibr" rid="B14">14</xref>]. Each case is reconstructed in an empty construction, and each instruction is confirmed separately.</p>
        <p>In the Surface command, the first three expressions define <inline-formula><mml:math><mml:mi> X </mml:mi></mml:math></inline-formula> , <inline-formula><mml:math><mml:mi> Y </mml:mi></mml:math></inline-formula> , and <inline-formula><mml:math><mml:mi> Z </mml:mi></mml:math></inline-formula> ; these are followed by the first parameter and its lower and upper limits, and then by the second parameter and its limits. The Curve command takes three coordinate expressions, one parameter, and its limits. Listings A.1 - A.3 contain complete expressions without auxiliary functions or sliders. A long instruction may wrap across printed lines, but it must be entered as a single command, without added hyphens or line numbers.</p>
        <p>Listings A.1 - A.3 and C.1 - C.11 give explicit-object reconstructions for C2. The preserved files used for C1 may organize equivalent geometry differently: E02 generates floors and walls in lists, whereas A.2 defines those patches individually. Compare geometric roles and traces, not identical object names, auxiliary objects, or XML-element counts. This is not a fifteenth case or a geometry-solving algorithm. <bold>Appendix</bold> includes the correspondence between native objects and printed constructions.</p>
      </sec>
      <sec id="sec4dot5">
        <title>4.5. Operational Checks and Result Documentation</title>
        <p>C1. File opening. Identify the release file by case ID, version, and SHA-256 in the supplementary manifest; open that file in the recorded GeoGebra environment. Pass if the construction loads without an error and the expected geometric families are available. Fail on a loading error or a missing family. A hash mismatch is an artifact-identity failure and must be resolved before attributing the test to that release. This check is distinct from reconstruction from scratch.</p>
        <p>C2. Reconstruction from commands. Enter the complete listing for the case in an empty construction. Pass if the commands are accepted and produce the specified geometric roles and domains without a construction error; fail otherwise. Object names and grouping need not match the native file. The earlier completion of this operation is an author report, not an automated console log.</p>
        <p>C3. Geometric inspection. Inspect the actual definitions and parameter ranges in the Algebra view, rotate the construction, and isolate the roof, floor, and walls as needed. Check the four invariant groups below against the case-specific conditions in <bold>Appendix E</bold>. These are the acceptance conditions for a reproducible replay; the earlier author report establishes only that geometric inspection was reported, not that each newly explicit invariant was individually logged.</p>
        <p>C3.1. Boundary coverage. The base-patch images must cover the declared domain, with pairwise disjoint interiors. Their lifts must be the specified floor and roof, and the walls must cover every positive area, part of every actual contour component, including inner contours. Check formulas and ranges as well as isolated views. Any omitted component, inadmissible range, gap, or filled hole is a failure; matching the total volume or object count alone is insufficient.</p>
        <p>C3.2. Matching traces. For every contour segment, the wall at <italic>q</italic> = 0 must equal the floor trace and at <italic>q</italic> = 1 must equal the roof trace. Adjacent patch traces must represent the same curve, allow a stated reversal or change of parameter, and endpoint joints must coincide. Establish equality over the entire parameter interval from the expressions; point sampling or apparent overlap in a projection alone does not establish it. A nonzero symbolic discrepancy or a mismatched endpoint is a failure.</p>
        <p>C3.3. Exclusion of interior walls. Every positive area wall must project onto an actual contour of the combined base. No wall may be retained over an interior triangulation edge, an artificial partition, or a periodic parameter seam. Identify each wall by its geometric role; helper points and duplicate curve displays are not extra faces. A positive-area spurious wall is a failure even if the volume remains correct.</p>
        <p>C3.4. Seams and zero-height contacts. Periodic endpoint traces must coincide without creating a wall; real angular boundaries must not be discarded as seams. Where <italic>f</italic> = <italic>g</italic>, the image is the prescribed contact curve or point, not a wall of positive area. A collapsed base edge with positive height instead produces the appropriate vertical joint. Apply the distinct conditions for each case in <bold>Appendix E</bold>. A missing joint, false cap, unintended branch, or misclassified contact is a failure.</p>
        <p>C3.5. Decision and evidence. Record PASS only when all four applicable invariant groups are checked and satisfied; record FAIL for a violated condition and NOT_ASSESSED when a check or its evidence is missing. Retain the object definitions, trace derivations and relevant views as evidence. No pixel-based tolerance is specified or measured. These revised acceptance conditions must not be retrospectively assigned PASS merely because a historical screenshot exists.</p>
        <p>C4. Saving. Save the construction to a working-copy path, preserving the released original for identity checks. Pass if GeoGebra completes the save operation and produces a file; fail if it reports an error or no file is created. Record the path and outcome of the new operation.</p>
        <p>C5. Reopening. Close and reopen that saved working copy. Pass if it loads without an error and retains the intended geometric definitions and boundary roles; fail otherwise. Saving can change file bytes without changing the geometry, so the new working copy is not required to have the original release checksum. This persistence check concerns the tested environment, not cross-version compatibility.</p>
        <p>Graphical evidence. One screenshot from the author-reported execution is included for each case. The images document the resulting appearance, but an isolated projection cannot verify every face or replace analytical identities. The supplied images do not include a complete set of plans, full-solid and roof-hidden views for every case. Such additional views are proposed for a new replay; they are not retrospectively attributed to the available observations.</p>
        <p>Historical observations versus replay outcomes. A new replay is accepted only when C1 - C5 meet their stated conditions and C3 contains no failed or unassessed invariant. The historical ratio describes the reported set only, not a universal success probability or rendering accuracy.</p>
        <p>Traceability. Stable identifiers E01 - E14 link the matrix, problem statements, commands, figures, and supplementary files. Cases E04 - E13 are drawn from [<xref ref-type="bibr" rid="B12">12</xref>], and E14 is drawn from [<xref ref-type="bibr" rid="B13">13</xref>]. For each case,<bold>Appendix</bold> supplies a versioned .ggb file, the original filename, a SHA-256 checksum, and a mapping of object roles. The release label v1.0.0 identifies the supplied payload and was assigned during revision; it is not the software build or a test-time version label.</p>
        <p>Observation-table provenance. The supplementary CSV contains 70 rows, one for each case-operation pair, with C1 - C5, software build, tester, reported date range, reported outcome, and incident note. Every row is labeled CONSOLIDATED_AUTHOR_OBSERVATION and PASS_REPORTED. Exact timestamps, repetition counts, invariant-level findings, and test-time file hashes are marked as not recorded. The table is a retrospective tabulation of the author’s statement, not a substitute for a contemporaneous raw log. Packaging-time checksum, ZIP and XML checks are separately identified and do not constitute GeoGebra execution. Testing by an author is not independent third-party reproduction.</p>
      </sec>
      <sec id="sec4dot6">
        <title>4.6. Preparation for a Subsequent Classroom Activity</title>
        <p>Based on the consolidated operational observations, a 90-minute pilot classroom activity is proposed; this duration is planned, not measured. The proposed schedule allocates 10 minutes to a diagnostic task, 15 minutes to formulate the base and heights, 35 minutes to construction, 20 minutes to justifying edges and integrals, and 10 minutes to an individual transfer task. The triangular example can introduce the procedure, whereas the L-shaped base or annulus can be used to assess its application to a new difficulty. The instructor should adapt the sequence to the group’s prior knowledge of multivariable calculus.</p>
        <p>Student work would be assessed against four criteria scored from 0 to 2: identifying the domain and heights; matching parameterizations to surfaces; selecting walls and edges; and justifying a volume or flux. Zero denotes missing or incorrect work; one denotes partial work with errors; and two denotes correct, justified work. Problems with software use would be distinguished from conceptual errors. This instrument is proposed for piloting and has not been validated; its descriptive use alone would not demonstrate a causal learning improvement.</p>
      </sec>
    </sec>
    <sec id="sec5">
      <title>5. Results</title>
      <p>The results combine three main examples, eleven additional cases, mathematical checks, and consolidated operational observations reported by the tester. Complete listings appear in <bold>Appendix</bold><bold>A</bold> and <bold>Appendix</bold><bold>C</bold>, with main calculations in <bold>Append</bold><bold>ix B</bold>. <xref ref-type="fig" rid="fig1">Figures 1-3</xref> show the original examples; <bold>Figures A1-A3</bold> group the textbook cases. Section 5.5 presents the author-reported operations separately from analytical quantities, and <bold>Appendix E</bold> makes the geometric acceptance conditions checkable without presenting them as historical per-invariant measurements.</p>
      <sec id="sec5dot1">
        <title>5.1. Example 1: Solid over a Triangular Base</title>
        <p>Step 1. Formulation. Consider</p>
        <disp-formula id="FD15">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>D</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>{</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mi>x</mml:mi>
                      <mml:mo>,</mml:mo>
                      <mml:mi>y</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>:</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>x</mml:mi>
                  <mml:mo>≤</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>≤</mml:mo>
                  <mml:mi>y</mml:mi>
                  <mml:mo>≤</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>x</mml:mi>
                </mml:mrow>
                <mml:mo>}</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>g</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mn>0</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>f</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>+</mml:mo>
              <mml:msup>
                <mml:mi>x</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>+</mml:mo>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Since <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> f </mml:mi><mml:mn> 1 </mml:mn></mml:msub><mml:mo> − </mml:mo><mml:msub><mml:mi> g </mml:mi><mml:mn> 1 </mml:mn></mml:msub><mml:mo> ≥ </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> , the solid has positive height throughout the base. The planar vertices are <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> B </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> , </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , and <inline-formula><mml:math><mml:mrow><mml:mi> C </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> .</p>
        <p>Step 2. Parameterization and lifting. Applying Equation (3) gives</p>
        <disp-formula id="FD16">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>ϕ</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:mi>s</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>J</mml:mi>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>ϕ</mml:mi>
                    <mml:mn>1</mml:mn>
                  </mml:msub>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>−</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The roof and floor are defined by</p>
        <disp-formula id="FD17">
          <mml:math>
            <mml:mrow>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>S</mml:mi>
                </mml:mstyle>
                <mml:mn>1</mml:mn>
                <mml:mi>f</mml:mi>
              </mml:msubsup>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:mi>s</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mi>t</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>+</mml:mo>
                  <mml:msup>
                    <mml:mi>s</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>+</mml:mo>
                  <mml:msup>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mo>(</mml:mo>
                        <mml:mrow>
                          <mml:mn>1</mml:mn>
                          <mml:mo>−</mml:mo>
                          <mml:mi>s</mml:mi>
                        </mml:mrow>
                        <mml:mo>)</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:msup>
                    <mml:mi>t</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>S</mml:mi>
                </mml:mstyle>
                <mml:mn>1</mml:mn>
                <mml:mi>g</mml:mi>
              </mml:msubsup>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:mi>s</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mi>t</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>0</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The first two lines of Listing A.1 create these patches. Setting <inline-formula><mml:math><mml:mrow><mml:mi> s </mml:mi><mml:mo> = </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> collapses a parameter edge to vertex <inline-formula><mml:math><mml:mi> B </mml:mi></mml:math></inline-formula> , without generating an additional wall.</p>
        <p>Step 3. Walls. The boundary curves are <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> γ </mml:mi><mml:mrow><mml:mi> A </mml:mi><mml:mi> B </mml:mi></mml:mrow></mml:msub><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> γ </mml:mi><mml:mrow><mml:mi> B </mml:mi><mml:mi> C </mml:mi></mml:mrow></mml:msub><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> s </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , and <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> γ </mml:mi><mml:mrow><mml:mi> C </mml:mi><mml:mi> A </mml:mi></mml:mrow></mml:msub><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> s </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> . Equation (5) gives</p>
        <disp-formula id="FD18">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>W</mml:mi>
                </mml:mstyle>
                <mml:mrow>
                  <mml:mi>A</mml:mi>
                  <mml:mi>B</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mi>q</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>+</mml:mo>
                      <mml:msup>
                        <mml:mi>s</mml:mi>
                        <mml:mn>2</mml:mn>
                      </mml:msup>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD19">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>W</mml:mi>
                </mml:mstyle>
                <mml:mrow>
                  <mml:mi>B</mml:mi>
                  <mml:mi>C</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>q</mml:mi>
                  <mml:mrow>
                    <mml:mo>[</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>+</mml:mo>
                      <mml:msup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:mn>1</mml:mn>
                              <mml:mo>−</mml:mo>
                              <mml:mi>s</mml:mi>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                        </mml:mrow>
                        <mml:mn>2</mml:mn>
                      </mml:msup>
                      <mml:mo>+</mml:mo>
                      <mml:msup>
                        <mml:mi>s</mml:mi>
                        <mml:mn>2</mml:mn>
                      </mml:msup>
                    </mml:mrow>
                    <mml:mo>]</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD20">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>W</mml:mi>
                </mml:mstyle>
                <mml:mrow>
                  <mml:mi>C</mml:mi>
                  <mml:mi>A</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>0</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>q</mml:mi>
                  <mml:mrow>
                    <mml:mo>[</mml:mo>
                    <mml:mrow>
                      <mml:mn>1</mml:mn>
                      <mml:mo>+</mml:mo>
                      <mml:msup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:mn>1</mml:mn>
                              <mml:mo>−</mml:mo>
                              <mml:mi>s</mml:mi>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                        </mml:mrow>
                        <mml:mn>2</mml:mn>
                      </mml:msup>
                    </mml:mrow>
                    <mml:mo>]</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The next three lines of Listing A.1 represent these walls. The upper edges are obtained by setting <inline-formula><mml:math><mml:mrow><mml:mi> q </mml:mi><mml:mo> = </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> , and the lower edges by setting <inline-formula><mml:math><mml:mrow><mml:mi> q </mml:mi><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> ; three vertical edges are also constructed at the vertices.</p>
        <p>Step 4. Verification. Cartesian integration and change of variables give the same value:</p>
        <disp-formula id="FD21">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>V</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mrow>
                            <mml:mn>1</mml:mn>
                            <mml:mo>−</mml:mo>
                            <mml:mi>x</mml:mi>
                          </mml:mrow>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:mn>1</mml:mn>
                              <mml:mo>+</mml:mo>
                              <mml:msup>
                                <mml:mi>x</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                              <mml:mo>+</mml:mo>
                              <mml:msup>
                                <mml:mi>y</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mn>1</mml:mn>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>[</mml:mo>
                            <mml:mrow>
                              <mml:mn>1</mml:mn>
                              <mml:mo>+</mml:mo>
                              <mml:msup>
                                <mml:mi>s</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                              <mml:mo>+</mml:mo>
                              <mml:msup>
                                <mml:mrow>
                                  <mml:mrow>
                                    <mml:mo>(</mml:mo>
                                    <mml:mrow>
                                      <mml:mn>1</mml:mn>
                                      <mml:mo>−</mml:mo>
                                      <mml:mi>s</mml:mi>
                                    </mml:mrow>
                                    <mml:mo>)</mml:mo>
                                  </mml:mrow>
                                </mml:mrow>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                              <mml:msup>
                                <mml:mi>t</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                            </mml:mrow>
                            <mml:mo>]</mml:mo>
                          </mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:mn>1</mml:mn>
                              <mml:mo>−</mml:mo>
                              <mml:mi>s</mml:mi>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>t</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>s</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>2</mml:mn>
                <mml:mn>3</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The boundary has five patches: one roof, one floor, and three walls. As a conceptual check, interpolating the vertex heights would produce the plane <inline-formula><mml:math><mml:mrow><mml:mi> z </mml:mi><mml:mo> = </mml:mo><mml:mn> 1 </mml:mn><mml:mo> + </mml:mo><mml:mi> x </mml:mi><mml:mo> + </mml:mo><mml:mi> y </mml:mi></mml:mrow></mml:math></inline-formula> and volume 5/6, which do not correspond to the specified solid. The relative error would be 25%. This comparison is an analytical result, for example, not a measurement of GeoGebra accuracy.</p>
        <fig id="fig1">
          <label>Figure 1</label>
          <graphic xlink:href="https://html.scirp.org/file/2314029-rId224.jpeg?20261030032433" />
        </fig>
        <p><bold>Figure 1.</bold> Case E01: roof <italic>z</italic> = 1 + <italic>x</italic><sup>2</sup> + <italic>y</italic><sup>2</sup> over the triangle <italic>x</italic> ≥ 0, <italic>y</italic> ≥ 0, <italic>x</italic> + <italic>y</italic> ≤ 1, with floor <italic>z</italic> = 0. Evaluating the function preserves the curvature of the roof; no plane is interpolated through the vertex heights. The screenshot supplied by the tester is a projected view, not a measurement of area or volume. Corresponding colors to each axis: {<italic>X</italic>, <italic>Y</italic>, <italic>Z</italic>} = {Red, Green, Blue}; from here, all figures with solid boundary representations use the same color codes to avoid overcharging figures with axis labels. </p>
        <p>Step 5. Operational observations. The author reported completing C1 - C5 for E01 without incidents. The definitions in A.1 yield five surfaces, six boundary curves, and three vertical segments; these counts are derived from the expressions. <xref ref-type="fig" rid="fig1">Figure 1</xref> shows the supplied execution view. The explicit C3 replay conditions are listed in <bold>Appendix E</bold>.</p>
      </sec>
      <sec id="sec5dot2">
        <title>5.2. Example 2: Solid over a Concave L-Shaped Polygonal Base</title>
        <p>Step 1. Formulation. Define the vertices</p>
        <disp-formula id="FD22">
          <mml:math>
            <mml:mrow>
              <mml:mi>A</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>0</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mn>0</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>B</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mn>0</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>C</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>D</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>E</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>F</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>0</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The base and height functions are</p>
        <disp-formula id="FD23">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>D</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mo>[</mml:mo>
                    <mml:mrow>
                      <mml:mn>0</mml:mn>
                      <mml:mo>,</mml:mo>
                      <mml:mn>1</mml:mn>
                    </mml:mrow>
                    <mml:mo>]</mml:mo>
                  </mml:mrow>
                  <mml:mo>×</mml:mo>
                  <mml:mrow>
                    <mml:mo>[</mml:mo>
                    <mml:mrow>
                      <mml:mn>0</mml:mn>
                      <mml:mo>,</mml:mo>
                      <mml:mrow>
                        <mml:mn>1</mml:mn>
                        <mml:mo>/</mml:mo>
                        <mml:mn>2</mml:mn>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo>]</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>∪</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mo>[</mml:mo>
                    <mml:mrow>
                      <mml:mn>0</mml:mn>
                      <mml:mo>,</mml:mo>
                      <mml:mrow>
                        <mml:mn>1</mml:mn>
                        <mml:mo>/</mml:mo>
                        <mml:mn>2</mml:mn>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo>]</mml:mo>
                  </mml:mrow>
                  <mml:mo>×</mml:mo>
                  <mml:mrow>
                    <mml:mo>[</mml:mo>
                    <mml:mrow>
                      <mml:mn>0</mml:mn>
                      <mml:mo>,</mml:mo>
                      <mml:mn>1</mml:mn>
                    </mml:mrow>
                    <mml:mo>]</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>g</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mn>0</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>f</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:msup>
                <mml:mi>x</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>+</mml:mo>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The contour <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mo> → </mml:mo><mml:mi> B </mml:mi><mml:mo> → </mml:mo><mml:mi> C </mml:mi><mml:mo> → </mml:mo><mml:mi> D </mml:mi><mml:mo> → </mml:mo><mml:mi> E </mml:mi><mml:mo> → </mml:mo><mml:mi> F </mml:mi><mml:mo> → </mml:mo><mml:mi> A </mml:mi></mml:mrow></mml:math></inline-formula> is counterclockwise. The height vanishes only at <inline-formula><mml:math><mml:mi> A </mml:mi></mml:math></inline-formula> , where the floor and roof meet. No positive-length vertical edge should be added there.</p>
        <p>Step 2. Separate the triangulation from the boundary. Use the partition</p>
        <disp-formula id="FD24">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>T</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>A</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>B</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>D</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>T</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>A</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>D</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>F</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>T</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>B</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>C</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>D</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>T</mml:mi>
                <mml:mn>4</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>D</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>E</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>F</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Edges <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> B </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> , and <inline-formula><mml:math><mml:mrow><mml:mi> D </mml:mi><mml:mi> F </mml:mi></mml:mrow></mml:math></inline-formula> are interior and occur in two triangles. Edges <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> B </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> B </mml:mi><mml:mi> C </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> C </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> D </mml:mi><mml:mi> E </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> E </mml:mi><mml:mi> F </mml:mi></mml:mrow></mml:math></inline-formula> , and <inline-formula><mml:math><mml:mrow><mml:mi> F </mml:mi><mml:mi> A </mml:mi></mml:mrow></mml:math></inline-formula> each occur once and form the contour. These edge-incidence counts identify which walls to construct and which to exclude.</p>
        <p>Step 3. Parameterize the four triangles. The components of Equation (3) simplify as shown in <bold>Table 3</bold>; in every case, <inline-formula><mml:math><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> t </mml:mi><mml:mo> ∈ </mml:mo><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> ] </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> .</p>
        <p><bold>Table 3.</bold> Parameterizations and exact checks for the L-shaped base.</p>
        <table-wrap id="tbl3">
          <label>Table 3</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Triangle</bold>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:msub>
                          <mml:mi>X</mml:mi>
                          <mml:mi>i</mml:mi>
                        </mml:msub>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:mi>s</mml:mi>
                            <mml:mo>,</mml:mo>
                            <mml:mi>t</mml:mi>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:msub>
                          <mml:mi>Y</mml:mi>
                          <mml:mi>i</mml:mi>
                        </mml:msub>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:mi>s</mml:mi>
                            <mml:mo>,</mml:mo>
                            <mml:mi>t</mml:mi>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <bold>Area</bold>
                </td>
                <td>
                  <bold>Volume under</bold>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:msup>
                          <mml:mi>x</mml:mi>
                          <mml:mn>2</mml:mn>
                        </mml:msup>
                        <mml:mo>+</mml:mo>
                        <mml:msup>
                          <mml:mi>y</mml:mi>
                          <mml:mn>2</mml:mn>
                        </mml:msup>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
              </tr>
              <tr>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mi>A</mml:mi>
                        <mml:mi>B</mml:mi>
                        <mml:mi>D</mml:mi>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mi>s</mml:mi>
                        <mml:mo>+</mml:mo>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mrow>
                              <mml:mo>(</mml:mo>
                              <mml:mrow>
                                <mml:mn>1</mml:mn>
                                <mml:mo>−</mml:mo>
                                <mml:mi>s</mml:mi>
                              </mml:mrow>
                              <mml:mo>)</mml:mo>
                            </mml:mrow>
                            <mml:mi>t</mml:mi>
                          </mml:mrow>
                          <mml:mo>/</mml:mo>
                          <mml:mn>2</mml:mn>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mrow>
                              <mml:mo>(</mml:mo>
                              <mml:mrow>
                                <mml:mn>1</mml:mn>
                                <mml:mo>−</mml:mo>
                                <mml:mi>s</mml:mi>
                              </mml:mrow>
                              <mml:mo>)</mml:mo>
                            </mml:mrow>
                            <mml:mi>t</mml:mi>
                          </mml:mrow>
                          <mml:mo>/</mml:mo>
                          <mml:mn>2</mml:mn>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>1/4</td>
                <td>1/12</td>
              </tr>
              <tr>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mi>A</mml:mi>
                        <mml:mi>D</mml:mi>
                        <mml:mi>F</mml:mi>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mrow>
                          <mml:mi>s</mml:mi>
                          <mml:mo>/</mml:mo>
                          <mml:mn>2</mml:mn>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mrow>
                          <mml:mi>s</mml:mi>
                          <mml:mo>/</mml:mo>
                          <mml:mn>2</mml:mn>
                        </mml:mrow>
                        <mml:mo>+</mml:mo>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:mn>1</mml:mn>
                            <mml:mo>−</mml:mo>
                            <mml:mi>s</mml:mi>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                        <mml:mi>t</mml:mi>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>1/4</td>
                <td>1/12</td>
              </tr>
              <tr>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mi>B</mml:mi>
                        <mml:mi>C</mml:mi>
                        <mml:mi>D</mml:mi>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mn>1</mml:mn>
                        <mml:mo>−</mml:mo>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mrow>
                              <mml:mo>(</mml:mo>
                              <mml:mrow>
                                <mml:mn>1</mml:mn>
                                <mml:mo>−</mml:mo>
                                <mml:mi>s</mml:mi>
                              </mml:mrow>
                              <mml:mo>)</mml:mo>
                            </mml:mrow>
                            <mml:mi>t</mml:mi>
                          </mml:mrow>
                          <mml:mo>/</mml:mo>
                          <mml:mn>2</mml:mn>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mrow>
                              <mml:mo>[</mml:mo>
                              <mml:mrow>
                                <mml:mi>s</mml:mi>
                                <mml:mo>+</mml:mo>
                                <mml:mrow>
                                  <mml:mo>(</mml:mo>
                                  <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo>−</mml:mo>
                                    <mml:mi>s</mml:mi>
                                  </mml:mrow>
                                  <mml:mo>)</mml:mo>
                                </mml:mrow>
                                <mml:mi>t</mml:mi>
                              </mml:mrow>
                              <mml:mo>]</mml:mo>
                            </mml:mrow>
                          </mml:mrow>
                          <mml:mo>/</mml:mo>
                          <mml:mn>2</mml:mn>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>1/8</td>
                <td>5/48</td>
              </tr>
              <tr>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mi>D</mml:mi>
                        <mml:mi>E</mml:mi>
                        <mml:mi>F</mml:mi>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mrow>
                              <mml:mo>[</mml:mo>
                              <mml:mrow>
                                <mml:mn>1</mml:mn>
                                <mml:mo>−</mml:mo>
                                <mml:mrow>
                                  <mml:mo>(</mml:mo>
                                  <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo>−</mml:mo>
                                    <mml:mi>s</mml:mi>
                                  </mml:mrow>
                                  <mml:mo>)</mml:mo>
                                </mml:mrow>
                                <mml:mi>t</mml:mi>
                              </mml:mrow>
                              <mml:mo>]</mml:mo>
                            </mml:mrow>
                          </mml:mrow>
                          <mml:mo>/</mml:mo>
                          <mml:mn>2</mml:mn>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mrow>
                              <mml:mo>[</mml:mo>
                              <mml:mrow>
                                <mml:mn>1</mml:mn>
                                <mml:mo>+</mml:mo>
                                <mml:mi>s</mml:mi>
                                <mml:mo>+</mml:mo>
                                <mml:mrow>
                                  <mml:mo>(</mml:mo>
                                  <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo>−</mml:mo>
                                    <mml:mi>s</mml:mi>
                                  </mml:mrow>
                                  <mml:mo>)</mml:mo>
                                </mml:mrow>
                                <mml:mi>t</mml:mi>
                              </mml:mrow>
                              <mml:mo>]</mml:mo>
                            </mml:mrow>
                          </mml:mrow>
                          <mml:mo>/</mml:mo>
                          <mml:mn>2</mml:mn>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
                <td>1/8</td>
                <td>5/48</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>The Jacobians are <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> s </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> / </mml:mo><mml:mn> 2 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> for the first two triangles and <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> s </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> / </mml:mo><mml:mn> 4 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> for the remaining two. The roof is constructed as <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> X </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> , </mml:mo><mml:msub><mml:mi> Y </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> , </mml:mo><mml:msubsup><mml:mi> X </mml:mi><mml:mi> i </mml:mi><mml:mn> 2 </mml:mn></mml:msubsup><mml:mo> + </mml:mo><mml:msubsup><mml:mi> Y </mml:mi><mml:mi> i </mml:mi><mml:mn> 2 </mml:mn></mml:msubsup></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and the floor as <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> X </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> , </mml:mo><mml:msub><mml:mi> Y </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> , </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> . The first eight commands in Listing A.2 define these patches without approximating the paraboloid by planar faces.</p>
        <p>Step 4. Close the boundary with six walls. In contour order, use</p>
        <disp-formula id="FD25">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>γ</mml:mi>
                <mml:mrow>
                  <mml:mi>A</mml:mi>
                  <mml:mi>B</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>0</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>γ</mml:mi>
                <mml:mrow>
                  <mml:mi>B</mml:mi>
                  <mml:mi>C</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mi>s</mml:mi>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>γ</mml:mi>
                <mml:mrow>
                  <mml:mi>C</mml:mi>
                  <mml:mi>D</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mrow>
                    <mml:mi>s</mml:mi>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD26">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>γ</mml:mi>
                <mml:mrow>
                  <mml:mi>D</mml:mi>
                  <mml:mi>E</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mo>(</mml:mo>
                        <mml:mrow>
                          <mml:mn>1</mml:mn>
                          <mml:mo>+</mml:mo>
                          <mml:mi>s</mml:mi>
                        </mml:mrow>
                        <mml:mo>)</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>γ</mml:mi>
                <mml:mrow>
                  <mml:mi>E</mml:mi>
                  <mml:mi>F</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mo>(</mml:mo>
                        <mml:mrow>
                          <mml:mn>1</mml:mn>
                          <mml:mo>−</mml:mo>
                          <mml:mi>s</mml:mi>
                        </mml:mrow>
                        <mml:mo>)</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>γ</mml:mi>
                <mml:mrow>
                  <mml:mi>F</mml:mi>
                  <mml:mi>A</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>0</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The height on each wall is <inline-formula><mml:math><mml:mrow><mml:mi> q </mml:mi><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:msub><mml:mi> a </mml:mi><mml:mi> j </mml:mi></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mi> s </mml:mi><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mn> 2 </mml:mn></mml:msup><mml:mo> + </mml:mo><mml:msub><mml:mi> b </mml:mi><mml:mi> j </mml:mi></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mi> s </mml:mi><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mn> 2 </mml:mn></mml:msup></mml:mrow><mml:mo> ] </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> . Listing A.2 includes six walls, six upper and six lower edges, and five positive-length vertical edges.</p>
        <p>Step 5. Check the solid. The areas sum to 3/4, and the volumes in <bold>Table 3</bold> sum to 3/8. An independent Cartesian decomposition confirms</p>
        <disp-formula id="FD27">
          <mml:math display="inline">
            <mml:mrow>
              <mml:msub>
                <mml:mi>V</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mn>1</mml:mn>
                        <mml:mo>/</mml:mo>
                        <mml:mn>2</mml:mn>
                      </mml:mrow>
                    </mml:mrow>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mn>1</mml:mn>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:msup>
                                <mml:mi>x</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                              <mml:mo>+</mml:mo>
                              <mml:msup>
                                <mml:mi>y</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>+</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mn>1</mml:mn>
                        <mml:mo>/</mml:mo>
                        <mml:mn>2</mml:mn>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mn>1</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mrow>
                            <mml:mrow>
                              <mml:mn>1</mml:mn>
                              <mml:mo>/</mml:mo>
                              <mml:mn>2</mml:mn>
                            </mml:mrow>
                          </mml:mrow>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:msup>
                                <mml:mi>x</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                              <mml:mo>+</mml:mo>
                              <mml:msup>
                                <mml:mi>y</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>3</mml:mn>
                <mml:mn>8</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Fourteen boundary patches are obtained: four roof patches, four floor patches, and six walls. The restriction preserves the concavity; no patch should occupy points with <inline-formula><mml:math><mml:mrow><mml:mi> x </mml:mi><mml:mo> &gt; </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> / </mml:mo><mml:mn> 2 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> y </mml:mi><mml:mo> &gt; </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> / </mml:mo><mml:mn> 2 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> . To check the exact nature of the lifting, the volume obtained by linearly interpolating heights over the same triangles was also calculated. It would be 23/48, a relative excess of 5/18, approximately 27.78%, over the original solid.</p>
        <p>Step 6. Operational observations. The author reported completing C1 - C5 for E02 without incidents. The explicit reconstruction yields fourteen surface patches, twelve exterior graph traces, and five nondegenerate vertical joints. In the supplied file, roofs a - d are individual objects, while Piso and Paredes contain four floor patches and six walls; graph traces need not be separate objects. Geometric inspection must preserve the concavity and exclude walls over <italic>AD</italic>, <italic>BD</italic>, and <italic>DF</italic>. <xref ref-type="fig" rid="fig2">Figure 2</xref> shows the supplied construction.</p>
        <p>Note on parameter exploration. If a moving point is added using barycentric weights <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> u </mml:mi><mml:mo> − </mml:mo><mml:mi> v </mml:mi><mml:mo> , </mml:mo><mml:mi> u </mml:mi><mml:mo> , </mml:mo><mml:mi> v </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , the independent intervals <inline-formula><mml:math><mml:mrow><mml:mi> u </mml:mi><mml:mo> , </mml:mo><mml:mi> v </mml:mi><mml:mo> ∈ </mml:mo><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> ] </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> are insufficient: <inline-formula><mml:math><mml:mrow><mml:mi> u </mml:mi><mml:mo> + </mml:mo><mml:mi> v </mml:mi><mml:mo> ≤ </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> is also required. To explore the entire triangle without this coupled restriction, use <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> u </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> v </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> , </mml:mo><mml:mi> u </mml:mi><mml:mo> , </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> u </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mi> v </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> . These exploration parameters should be distinguished from the local variables in the Surface command; they are not required to execute the published listings.</p>
        <fig id="fig2">
          <label>Figure 2</label>
          <graphic xlink:href="https://html.scirp.org/file/2314029-rId313.jpeg?20261030032433" />
        </fig>
        <p><bold>Figure 2.</bold> Case E02: solid under <italic>z</italic> = <italic>x</italic><sup>2</sup> + <italic>y</italic><sup>2</sup> over a concave L-shaped base. The four roof patches and four floor patches share boundary traces; only the six exterior contour segments generate walls. The screenshot documents the complete solid. The triangulation is defined in the text and does not constitute a set of interior walls.</p>
      </sec>
      <sec id="sec5dot3">
        <title>5.3. Example 3: Annular Base between Two Curved Surfaces</title>
        <p>Step 1. Formulation. Consider</p>
        <disp-formula id="FD28">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>D</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>{</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mi>x</mml:mi>
                      <mml:mo>,</mml:mo>
                      <mml:mi>y</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>:</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>≤</mml:mo>
                  <mml:msup>
                    <mml:mi>x</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>+</mml:mo>
                  <mml:msup>
                    <mml:mi>y</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>≤</mml:mo>
                  <mml:mn>4</mml:mn>
                </mml:mrow>
                <mml:mo>}</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>g</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:msup>
                    <mml:mi>x</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>+</mml:mo>
                  <mml:msup>
                    <mml:mi>y</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mn>4</mml:mn>
              </mml:mfrac>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>f</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mn>3</mml:mn>
              <mml:mo>−</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:msup>
                    <mml:mi>x</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>+</mml:mo>
                  <mml:msup>
                    <mml:mi>y</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mn>4</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>On this base, <inline-formula><mml:math><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> ≤ </mml:mo><mml:msub><mml:mi> f </mml:mi><mml:mn> 3 </mml:mn></mml:msub><mml:mo> − </mml:mo><mml:msub><mml:mi> g </mml:mi><mml:mn> 3 </mml:mn></mml:msub><mml:mo> ≤ </mml:mo><mml:mrow><mml:mn> 5 </mml:mn><mml:mo> / </mml:mo><mml:mn> 2 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> . The height is positive, both the floor and the roof are curved, and the central hole must remain empty.</p>
        <p>Step 2. Polar parameterization. With <inline-formula><mml:math><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> ≤ </mml:mo><mml:mi> r </mml:mi><mml:mo> ≤ </mml:mo><mml:mn> 2 </mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> ≤ </mml:mo><mml:mi> θ </mml:mi><mml:mo> ≤ </mml:mo><mml:mn> 2 </mml:mn><mml:mi> π </mml:mi></mml:mrow></mml:math></inline-formula> ,</p>
        <disp-formula id="FD29">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>ϕ</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>r</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>θ</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>r</mml:mi>
                  <mml:mi>cos</mml:mi>
                  <mml:mi>θ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>r</mml:mi>
                  <mml:mi>sin</mml:mi>
                  <mml:mi>θ</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>J</mml:mi>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>ϕ</mml:mi>
                    <mml:mn>3</mml:mn>
                  </mml:msub>
                </mml:mrow>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mi>r</mml:mi>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The lifts are</p>
        <disp-formula id="FD30">
          <mml:math>
            <mml:mrow>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>S</mml:mi>
                </mml:mstyle>
                <mml:mn>3</mml:mn>
                <mml:mi>g</mml:mi>
              </mml:msubsup>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>r</mml:mi>
                  <mml:mi>cos</mml:mi>
                  <mml:mi>θ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>r</mml:mi>
                  <mml:mi>sin</mml:mi>
                  <mml:mi>θ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:msup>
                        <mml:mi>r</mml:mi>
                        <mml:mn>2</mml:mn>
                      </mml:msup>
                    </mml:mrow>
                    <mml:mo>/</mml:mo>
                    <mml:mn>4</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msubsup>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>S</mml:mi>
                </mml:mstyle>
                <mml:mn>3</mml:mn>
                <mml:mi>f</mml:mi>
              </mml:msubsup>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>r</mml:mi>
                  <mml:mi>cos</mml:mi>
                  <mml:mi>θ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>r</mml:mi>
                  <mml:mi>sin</mml:mi>
                  <mml:mi>θ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>3</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:msup>
                        <mml:mi>r</mml:mi>
                        <mml:mn>2</mml:mn>
                      </mml:msup>
                    </mml:mrow>
                    <mml:mo>/</mml:mo>
                    <mml:mn>4</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The first two lines of Listing A.3 represent these surfaces. The duplicated line at <inline-formula><mml:math><mml:mrow><mml:mi> θ </mml:mi><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> θ </mml:mi><mml:mo> = </mml:mo><mml:mn> 2 </mml:mn><mml:mi> π </mml:mi></mml:mrow></mml:math></inline-formula> is a parameter seam: it is not a physical domain edge and requires no wall.</p>
        <p>Step 3. Construct the outer and inner walls. Traverse the outer circle counterclockwise and the inner circle clockwise. The parameterizations are</p>
        <disp-formula id="FD31">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>W</mml:mi>
                </mml:mstyle>
                <mml:mi>e</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>2</mml:mn>
                  <mml:mi>cos</mml:mi>
                  <mml:mi>θ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>2</mml:mn>
                  <mml:mi>sin</mml:mi>
                  <mml:mi>θ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>+</mml:mo>
                  <mml:mi>q</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD32">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mstyle mathvariant="bold" mathsize="normal">
                  <mml:mi>W</mml:mi>
                </mml:mstyle>
                <mml:mi>i</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>cos</mml:mi>
                  <mml:mi>θ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mo>−</mml:mo>
                  <mml:mi>sin</mml:mi>
                  <mml:mi>θ</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>/</mml:mo>
                    <mml:mn>4</mml:mn>
                  </mml:mrow>
                  <mml:mo>+</mml:mo>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:mn>5</mml:mn>
                      <mml:mi>q</mml:mi>
                    </mml:mrow>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The negative sign in the second component of the inner wall establishes clockwise traversal. It does not change the represented geometric set, but makes the cross product <inline-formula><mml:math><mml:mrow><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> W </mml:mi></mml:mstyle><mml:mi> θ </mml:mi></mml:msub><mml:mo> × </mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> W </mml:mi></mml:mstyle><mml:mi> q </mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> point into the hole, which is outward from the solid at that wall. The four circular edges lie at <inline-formula><mml:math><mml:mrow><mml:mi> z </mml:mi><mml:mo> = </mml:mo><mml:mn> 2 </mml:mn></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> z </mml:mi><mml:mo> = </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> z </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mrow><mml:mn> 11 </mml:mn></mml:mrow><mml:mo> / </mml:mo><mml:mn> 4 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> , and <inline-formula><mml:math><mml:mrow><mml:mi> z </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> / </mml:mo><mml:mn> 4 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> , depending on the associated face.</p>
        <p>Step 4. Integral verification. The volume integral is</p>
        <disp-formula id="FD33">
          <mml:math display="inline">
            <mml:mrow>
              <mml:msub>
                <mml:mi>V</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mi>π</mml:mi>
                        <mml:mo>/</mml:mo>
                        <mml:mn>2</mml:mn>
                      </mml:mrow>
                    </mml:mrow>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>1</mml:mn>
                          <mml:mn>2</mml:mn>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:mn>3</mml:mn>
                              <mml:mo>−</mml:mo>
                              <mml:mfrac>
                                <mml:mrow>
                                  <mml:msup>
                                    <mml:mi>r</mml:mi>
                                    <mml:mn>2</mml:mn>
                                  </mml:msup>
                                </mml:mrow>
                                <mml:mn>2</mml:mn>
                              </mml:mfrac>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mi>r</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>r</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>θ</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>21</mml:mn>
                  <mml:mi>π</mml:mi>
                </mml:mrow>
                <mml:mn>4</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>A second check uses the field <inline-formula><mml:math><mml:mrow><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> F </mml:mi></mml:mstyle><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi><mml:mo> , </mml:mo><mml:mi> z </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi><mml:mo> , </mml:mo><mml:mi> z </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> / </mml:mo><mml:mn> 3 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> , whose divergence equals one. With outward orientation, the fluxes in <bold>Table 4</bold> sum to the same volume.</p>
        <p><bold>Table 4.</bold> Exact fluxes through the four faces of the annular solid.</p>
        <table-wrap id="tbl4">
          <label>Table 4</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Face</bold>
                </td>
                <td>
                  <bold>Outward flux of</bold>
                  <inline-formula>
                    <mml:math>
                      <mml:mrow>
                        <mml:mstyle mathvariant="bold" mathsize="normal">
                          <mml:mi>F</mml:mi>
                        </mml:mstyle>
                        <mml:mo>=</mml:mo>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mrow>
                              <mml:mo>(</mml:mo>
                              <mml:mrow>
                                <mml:mi>x</mml:mi>
                                <mml:mo>,</mml:mo>
                                <mml:mi>y</mml:mi>
                                <mml:mo>,</mml:mo>
                                <mml:mi>z</mml:mi>
                              </mml:mrow>
                              <mml:mo>)</mml:mo>
                            </mml:mrow>
                          </mml:mrow>
                          <mml:mo>/</mml:mo>
                          <mml:mn>3</mml:mn>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                </td>
              </tr>
              <tr>
                <td>Roof</td>
                <td>29π/8</td>
              </tr>
              <tr>
                <td>Floor</td>
                <td>5π/8</td>
              </tr>
              <tr>
                <td>Outer wall</td>
                <td>8π/3</td>
              </tr>
              <tr>
                <td>Inner wall</td>
                <td>−5π/3</td>
              </tr>
              <tr>
                <td>Total</td>
                <td>21π/4</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>The sign of the inner-wall contribution verifies the role of orientation in the presence of a hole. This check is more informative about walls than using only a vertical field, whose flux through every vertical wall would be zero. Nevertheless, a single integral equality does not prove closure by itself: geometric checks of matching edges and coverage are also required.</p>
        <p>Step 5. Operational observations. The author reported completing C1 - C5 for E03 without incidents. The definitions yield four surfaces and four circular boundary curves. <xref ref-type="fig" rid="fig3">Figure 3</xref> shows the hole and its contours; inner-wall orientation is established analytically, not by color. <bold>Appendix E</bold> requires preservation of both contour components and equality of periodic traces without a radial wall.</p>
        <fig id="fig3">
          <label>Figure 3</label>
          <graphic xlink:href="https://html.scirp.org/file/2314029-rId350.jpeg?20261030032434" />
        </fig>
        <p><bold>Figure 3.</bold> Case E03: solid over 1 ≤ <italic>x</italic><sup>2</sup> + <italic>y</italic><sup>2</sup> ≤ 4, between <italic>z</italic> = (<italic>x</italic><sup>2</sup> + <italic>y</italic><sup>2</sup>)/4 and <italic>z</italic> = 3 − (<italic>x</italic><sup>2</sup> + <italic>y</italic><sup>2</sup>)/4. The inner contour encloses a hole and requires a wall oriented toward it. The angular seam generates no radial wall. The screenshot was supplied by the tester.</p>
      </sec>
      <sec id="sec5dot4">
        <title>5.4. Summary of Results</title>
        <p><bold>Table 5</bold> summarizes the base geometries, boundary patch counts, base areas, and exact volumes of the three developed cases.</p>
        <p><bold>Table 5.</bold> Characteristics of the three developed cases.</p>
        <table-wrap id="tbl5">
          <label>Table 5</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Case</bold>
                </td>
                <td>
                  <bold>Base geometry</bold>
                </td>
                <td>
                  <bold>Roof</bold>
                  <bold>/</bold>
                  <bold>floor</bold>
                  <bold>/</bold>
                  <bold>walls</bold>
                </td>
                <td>
                  <bold>Base area</bold>
                </td>
                <td>
                  <bold>Exact volume</bold>
                </td>
              </tr>
              <tr>
                <td>1</td>
                <td>Triangle</td>
                <td>1/1/3</td>
                <td>1/2</td>
                <td>2/3</td>
              </tr>
              <tr>
                <td>2</td>
                <td>Concave L-shaped polygon</td>
                <td>4/4/6</td>
                <td>3/4</td>
                <td>3/8</td>
              </tr>
              <tr>
                <td>3</td>
                <td>Annulus</td>
                <td>1/1/2</td>
                <td>3π</td>
                <td>21π/4</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>The progression separates three difficulties: converting a triangular domain to independent ranges, distinguishing triangulation from the contour of a concave base, and handling a hole with inner-wall orientation. In the second case, the six symbolic checks of wall boundary traces yield zero residuals. The three volume integrals and the annular flux were evaluated exactly rather than estimated visually.</p>
      </sec>
      <sec id="sec5dot5">
        <title>5.5. Results of the Extended Validation Set</title>
        <p>Cases E01 - E03 are original examples. Cases E04 - E12 correspond to Exercises 19 - 27 in [<xref ref-type="bibr" rid="B12">12</xref>]. Case E13, bounded by <italic>x</italic> = <italic>y</italic><sup>2</sup>, <italic>z</italic> = 0, and <italic>x</italic> +<italic>z</italic> = 1, is also taken from [<xref ref-type="bibr" rid="B12">12</xref>]. Case E14 is taken from [<xref ref-type="bibr" rid="B13">13</xref>]. Complete mathematical descriptions appear in <bold>Appendix C</bold> to distinguish cases with repeated exercise numbers.</p>
        <p><bold>Table 6</bold> summarizes the consolidated author observations for C1 - C5 across the fourteen cases. R denotes an operation reported by the author as completed without incidents. A row with five R entries summarizes that author observation; it does not certify an invariant-level replay under the revised C3 protocol.</p>
        <p><bold>Table 6.</bold> Consolidated author observations for fourteen cases. R means reported completion without incidents; it is not an independently logged pass.</p>
        <table-wrap id="tbl6">
          <label>Table 6</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Case</bold>
                </td>
                <td>
                  <bold>C1</bold>
                  <bold>Open</bold>
                </td>
                <td>
                  <bold>C2</bold>
                  <bold>Commands</bold>
                </td>
                <td>
                  <bold>C3</bold>
                  <bold>Inspection</bold>
                </td>
                <td>
                  <bold>C4</bold>
                  <bold>Save</bold>
                </td>
                <td>
                  <bold>C5</bold>
                  <bold>Reopen</bold>
                </td>
                <td>
                  <bold>Incidents</bold>
                </td>
              </tr>
              <tr>
                <td>E01</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E02</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E03</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E04</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E05</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E06</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E07</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E08</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E09</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E10</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E11</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E12</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E13</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
              <tr>
                <td>E14</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>R</td>
                <td>None reported</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>The tester reported successful completion of all five operations for 14 of 14 cases (100% of this reported set), without incident. One screenshot was supplied per case. No contemporaneous operation-level log was provided, and the detailed C3 invariants added in this revision have no historical individual outcomes. <bold>Table 6</bold> and the supplementary CSV are therefore consistently presented as consolidated author observations, not seventy independent trials or independently verified operational passes. The volumes in <bold>Table 5</bold> and <bold>Appendix</bold><bold>C</bold> are analytical checks, not measurements from screenshots.</p>
      </sec>
      <sec id="sec5dot6">
        <title>5.6. Critical Cases Extending the Scope</title>
        <p>In E13, the base lies between<italic>x</italic> = <italic>y</italic><sup>2</sup> and <italic>x</italic> = 1, with −1 ≤ <italic>y</italic> ≤ 1. Parameterizing it by <italic>X</italic> = <italic>t</italic><sup>2</sup> + <italic>s</italic>(1 − <italic>t</italic><sup>2</sup>), <italic>Y</italic> = <italic>t</italic> gives the roof height <italic>H</italic> = (1 − <italic>s</italic>)(1 − <italic>t</italic><sup>2</sup>). This height is zero on <italic>x</italic> = 1: the boundary consists of a floor, a roof, and a single parabolic wall, and the volume is 8/15. The case demonstrates the need to distinguish a contour segment from a positive-area wall.</p>
        <p>In E10, the base <italic>x</italic><sup>2</sup> ≤ <italic>y</italic> ≤ 4 includes −2 ≤ <italic>x</italic> ≤ 2. The roof <italic>z</italic> = <italic>x</italic><sup>2</sup> touches the floor along <italic>x</italic> = 0, so the main assumptions are applied to two subregions. Omitting negative <italic>x</italic>values would remove half of the total volume of 128/15. The two lobes touch but do not have a connected interior; their contact does not become a wall.</p>
        <p>E11 and E12 distinguish cylinders with different axis directions and first-octant restrictions. E14 preserves two parabolic arcs exactly without triangulation. <bold>Figures A1-A3</bold> in <bold>Appendix D</bold> group these cases and the remaining exercises. No figure replaces equation-based checks: each provides evidence of the representation obtained and supports interpretation of the boundary.</p>
      </sec>
    </sec>
    <sec id="sec6">
      <title>6. Discussion</title>
      <sec id="sec6dot1">
        <title>6.1. Nature of the Contribution</title>
        <p>The square-to-triangle map, barycentric coordinates, triangulation, and graph lifting are established tools. The contribution is their integration into a protocol for constructing complete boundaries, with explicit correspondence between inequalities, patches, curves, and checks. Operational validation covered fourteen configurations selected for geometric diversity. No priority over all earlier GeoGebra applications is claimed; the literature review is selective rather than systematic.</p>
        <p>Whereas de Carvalho <italic>et al</italic>. [<xref ref-type="bibr" rid="B4">4</xref>] emphasize Riemann sums, the present approach focuses on the parametric boundary and on preserving height functions over nonrectangular bases. In contrast with the Maple visualization and calculation interface described by Linares-Rodríguez <italic>et al</italic>. [<xref ref-type="bibr" rid="B5">5</xref>], it proposes an explicit GeoGebra command sequence. These distinctions characterize the approach; they do not demonstrate educational, computational, or functional superiority.</p>
        <p>Separating the triangulation from the contour is particularly important. Base subdivisions allow the roof and floor to be parameterized but do not justify adding interior surfaces to the solid. An analogous distinction arises in the annular case: a coordinate seam does not automatically become a wall.</p>
      </sec>
      <sec id="sec6dot2">
        <title>6.2. Proposed Educational Interpretation</title>
        <p>The cases can be organized as activities involving conversion between representations, in the sense discussed by Duval [<xref ref-type="bibr" rid="B2">2</xref>]. Before using the software, students formulate the base and predict the faces of the solid. During construction, they identify the role of each parameter. Afterward, they justify shared edges, determine normals, and check a volume or flux. The image becomes an object of interpretation and comparison, consistent with Arcavi’s perspective [<xref ref-type="bibr" rid="B3">3</xref>], rather than a substitute for proof.</p>
        <p>Questions can require connections between geometry and calculus: why is there no wall over <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> in the second example? Why is the floor in the third example not the planar projection? What changes when the inner-contour traversal is reversed? What volume would result from interpolating vertex heights? These tasks can be used in multivariable calculus and vector analysis. Their use in introductory single-variable courses would require adaptation to students’ prior knowledge.</p>
        <p>No student responses have been collected. The pilot classroom activity proposed in Section 4.6 should examine transfer tasks and correctness criteria: domain identification, exclusion of spurious faces, integration limits, and normal orientation. The consolidated operational observations provide a technical basis for that pilot; favorable opinions of the images would not demonstrate improved learning.</p>
      </sec>
      <sec id="sec6dot3">
        <title>6.3. Limitations and Conditions of Use</title>
        <p>The method requires an appropriate base description and correct height ordering. Discontinuities, self-intersecting contours, changes in that ordering, or multiple vertical intervals per point require reformulation. Interior contact between the floor and roof, as in E10, is treated by subregions before applying the main assumptions. Rank degeneracies must be recognized when defining normals and integrals, even when the geometric union remains well defined.</p>
        <p>Triangulation does not always minimize the number of objects. The L-shaped base can also be divided into two rectangles, reducing the number of roof and floor patches. Four triangles were used to make the triangulation-contour distinction explicit and to explain a procedure extendable to other polygons. Patch count is not equated with rendering accuracy: the latter depends on the software’s graphical representation and was not quantified.</p>
        <p>Operational findings are limited to one Windows environment and one tester from the author team. The fourteen cases are neither random nor exhaustive; their feature coverage is explicit in <bold>Table 2</bold>. No contemporaneous operation-level log, exact repetition counts, execution times, rendering errors, or invariant-level C3 results were supplied. The screenshots show one view per case, not the entire interaction. Accordingly, the reported 14/14 completion rate is an author observation about this set, not independent reproduction or certification under the newly specified C3 protocol. The original executions are reported as completed; the new protocol and unfilled replay form enable a separately documented evaluation.</p>
      </sec>
      <sec id="sec6dot4">
        <title>6.4. Availability of Procedures, Artifacts, and Observations</title>
        <p>The main text and <bold>Appendices A</bold><bold>-</bold><bold>E</bold> retain the mathematical formulations, complete command listings, calculations, figures, and case-specific checks. <bold>Appendix</bold> additionally provides the fourteen author-supplied .ggb files, named E01_v1.0.0.ggb through E14_v1.0.0.ggb. Their payloads are preserved byte for byte; the manifest records original filenames, roles, versions, sizes, and SHA-256 hashes. These files are necessary to repeat C1, whereas the printed commands support C2. The supplementary observation table documents the provenance and limits of the operational claims rather than replacing the methodological explanation.</p>
        <p>The release label was assigned during revision, not retrospectively to the original test dates. No test-time checksum was supplied. E02 embeds saved-version metadata 5.2.899.0, whereas the execution build reported by the author is 6.0.920.0; saved-file metadata and the opening environment are different facts. The other thirteen files have no root-level saved-version attribute. These attributes were preserved rather than rewritten to resemble the test environment.</p>
        <p><bold>Appendix</bold> also includes an offline checksum/XML checker and a blank operation-level replay form. The checker does not run GeoGebra. Journal-hosted distribution of <bold>A</bold><bold>ppendix</bold> can preserve the released artifacts alongside the article; no repository DOI is claimed here. The figures remain associated with their construction, and higher-resolution bitmap exports can be obtained from the 3D view with ExportImage [<xref ref-type="bibr" rid="B17">17</xref>].</p>
      </sec>
    </sec>
    <sec id="sec7">
      <title>7. Conclusions</title>
      <p>A methodology was formulated to delimit solids that are simple with respect to <inline-formula><mml:math><mml:mi> z </mml:mi></mml:math></inline-formula> through three operations: parameterizing a planar base, lifting it to the lower and upper functions, and constructing walls only along its boundary. The coverage proposition establishes why the union of these objects represents <inline-formula><mml:math><mml:mrow><mml:mo> ∂ </mml:mo><mml:mi> Ω </mml:mi></mml:mrow></mml:math></inline-formula> under the stated assumptions.</p>
      <p>The three original examples develop triangular, concave polygonal, and annular bases, with exact volumes 2/3, 3/8, and 21π/4; the last volume is also verified by an outward-flux calculation. Eleven additional exercises incorporate curvilinear bases, planes, cylinders, and height degeneracies. Every case is defined from its domain and height functions without relying on a preexisting construction.</p>
      <p>For testing reported between September 3 and 15, 2026, the author stated that all fourteen cases completed opening, command reconstruction, geometric inspection, saving, and reopening without incidents in GeoGebra Classic 6.0.920.0 on Windows 10 Home, in English. Fourteen images and a retrospective observation table accompany that statement; no contemporaneous operation-level log was supplied. The versioned artifacts, coverage map and explicit C3 invariants make the scope assessable and provide a protocol for independently documented replay. They do not convert the historical observations into independently verified results or demonstrate educational effectiveness. A future classroom activity should evaluate learning outcomes separately.</p>
    </sec>
    <sec id="sec8">
      <title>Author Contributions</title>
      <p>Rubi C. López-Sánchez: Methodology proposal and exercise selection. Jesús N. Zaragoza-Grifé: Test development and execution, methodology proposal, and methodological review. Caridad G. Vales-Pinzón: Contribution and review of examples. Gilberto A. Corona-Suárez: Manuscript reading and grammatical review.</p>
    </sec>
    <sec id="sec9">
      <title>Funding</title>
      <p>This research received no financial support.</p>
    </sec>
    <sec id="sec10">
      <title>Declaration of Generative AI Assistance</title>
      <p>Generative artificial intelligence was used to assist with English translation. Operational testing was performed by Jesús N. Zaragoza-Grifé. The figures are screenshots from the reported GeoGebra executions, not AI-generated images. Scientific verification and responsibility for the manuscript remain with the authors.</p>
    </sec>
    <sec id="sec11">
      <title>Appendix</title>
      <sec id="sec11dot1">
        <title>Appendix A. Complete Listings for Reproducing the Constructions</title>
        <p>These listings are part of the article and define the three original examples for reconstruction from commands (C2). Enter each instruction separately in an empty construction; parameter variables are local and require no sliders. Native .ggb files for C1 are supplied separately in <bold>Appendix</bold>. The explicit and native routes are compared by mathematical boundary roles, not by identical labels, list organization or auxiliary objects. <bold>Appendix C</bold> gives eleven textbook cases.</p>
        <p>A.1. Triangular Base</p>
        <p>A.1.1. Create the roof and floor. The planar coordinates are <inline-formula><mml:math><mml:mrow><mml:mi> X </mml:mi><mml:mo> = </mml:mo><mml:mi> s </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> Y </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mi> s </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mi> t </mml:mi></mml:mrow></mml:math></inline-formula> . The roof evaluates <inline-formula><mml:math><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> + </mml:mo><mml:msup><mml:mi> X </mml:mi><mml:mn> 2 </mml:mn></mml:msup><mml:mo> + </mml:mo><mml:msup><mml:mi> Y </mml:mi><mml:mn> 2 </mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> , and the floor lies in the plane <inline-formula><mml:math><mml:mrow><mml:mi> z </mml:mi><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> .</p>
        <p>roofPatch = Surface(s, (1−s)*t, 1+s^2+((1−s)*t)^2, s, 0, 1, t, 0, 1)</p>
        <p>floorPatch = Surface(s, (1−s)*t, 0, s, 0, 1, t, 0, 1)</p>
        <p>A.1.2. Create the three walls. The parameter q traverses the vertical interval between the floor and roof.</p>
        <p>wallAB = Surface(s, 0, q*(1+s^2), s, 0, 1, q, 0, 1)</p>
        <p>wallBC = Surface(1−s, s, q*(1+(1−s)^2+s^2), s, 0, 1, q, 0, 1)</p>
        <p>wallCA = Surface(0, 1−s, q*(1+(1−s)^2), s, 0, 1, q, 0, 1)</p>
        <p>A.1.3. Draw the edges. Six curves and three vertical segments are generated.</p>
        <p>upperAB = Curve(t, 0, 1+t^2, t, 0, 1)</p>
        <p>upperBC = Curve(1−t, t, 1+(1−t)^2+t^2, t, 0, 1)</p>
        <p>upperCA = Curve(0, 1−t, 1+(1−t)^2, t, 0, 1)</p>
        <p>lowerAB = Curve(t, 0, 0, t, 0, 1)</p>
        <p>lowerBC = Curve(1−t, t, 0, t, 0, 1)</p>
        <p>lowerCA = Curve(0, 1−t, 0, t, 0, 1)</p>
        <p>edgeA = Segment((0, 0, 0), (0, 0, 1))</p>
        <p>edgeB = Segment((1, 0, 0), (1, 0, 2))</p>
        <p>edgeC = Segment((0, 1, 0), (0, 1, 2))</p>
        <p>A.1.4. Adjust the display. Keep the constructed floor visible and hide only the coordinate plane.</p>
        <p>SetFilling(roofPatch, 0.45)</p>
        <p>SetFilling(floorPatch, 0.45)</p>
        <p>SetFilling(wallAB, 0.45)</p>
        <p>SetFilling(wallBC, 0.45)</p>
        <p>SetFilling(wallCA, 0.45)</p>
        <p>SetVisibleInView(xOyPlane, −1, false)</p>
        <p>To inspect the interior, execute the first instruction below, examine the joins, and then execute the second instruction to restore the roof:</p>
        <p>SetVisibleInView(roofPatch, −1, false)</p>
        <p>SetVisibleInView(roofPatch, −1, true)</p>
        <p>A.2. Concave L-Shaped Polygonal Base</p>
        <p>A.2.1. Create the four roof patches and four floor patches. The indices follow the order <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> B </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> D </mml:mi><mml:mi> F </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> B </mml:mi><mml:mi> C </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> D </mml:mi><mml:mi> E </mml:mi><mml:mi> F </mml:mi></mml:mrow></mml:math></inline-formula> in <bold>Table 3</bold>.</p>
        <p>roof1 = Surface(s+(1−s)*t/2, (1−s)*t/2, (s+(1−s)*t/2)^2+((1−s)*t/2)^2, s, 0, 1, t, 0, 1)</p>
        <p>roof2 = Surface(s/2, s/2+(1−s)*t, (s/2)^2+(s/2+(1−s)*t)^2, s, 0, 1, t, 0, 1)</p>
        <p>roof3 = Surface(1−(1−s)*t/2, (s+(1−s)*t)/2, (1−(1−s)*t/2)^2+((s+(1−s)*t)/2)^2, s, 0, 1, t, 0, 1)</p>
        <p>roof4 = Surface((1−(1−s)*t)/2, (1+s+(1−s)*t)/2, ((1−(1−s)*t)/2)^2+((1+s+(1−s)*t)/2)^2, s, 0, 1, t, 0, 1)</p>
        <p>floor1 = Surface(s+(1−s)*t/2, (1−s)*t/2, 0, s, 0, 1, t, 0, 1)</p>
        <p>floor2 = Surface(s/2, s/2+(1−s)*t, 0, s, 0, 1, t, 0, 1)</p>
        <p>floor3 = Surface(1−(1−s)*t/2, (s+(1−s)*t)/2, 0, s, 0, 1, t, 0, 1)</p>
        <p>floor4 = Surface((1−(1−s)*t)/2, (1+s+(1−s)*t)/2, 0, s, 0, 1, t, 0, 1)</p>
        <p>A.2.2. Create only the six contour walls. Do not lift the interior triangulation diagonals into walls.</p>
        <p>wallAB = Surface(s, 0, q*(s^2), s, 0, 1, q, 0, 1)</p>
        <p>wallBC = Surface(1, s/2, q*(1+s^2/4), s, 0, 1, q, 0, 1)</p>
        <p>wallCD = Surface(1−s/2, 1/2, q*((1−s/2)^2+1/4), s, 0, 1, q, 0, 1)</p>
        <p>wallDE = Surface(1/2, (1+s)/2, q*(1/4+(1+s)^2/4), s, 0, 1, q, 0, 1)</p>
        <p>wallEF = Surface((1−s)/2, 1, q*(1+(1−s)^2/4), s, 0, 1, q, 0, 1)</p>
        <p>wallFA = Surface(0, 1−s, q*((1−s)^2), s, 0, 1, q, 0, 1)</p>
        <p>A.2.3. Create the upper and lower edges and the vertical edges. No vertical segment is included over A because the height is zero there.</p>
        <p>upperAB = Curve(s, 0, s^2, s, 0, 1)</p>
        <p>upperBC = Curve(1, s/2, 1+s^2/4, s, 0, 1)</p>
        <p>upperCD = Curve(1−s/2, 1/2, (1−s/2)^2+1/4, s, 0, 1)</p>
        <p>upperDE = Curve(1/2, (1+s)/2, 1/4+(1+s)^2/4, s, 0, 1)</p>
        <p>upperEF = Curve((1−s)/2, 1, 1+(1−s)^2/4, s, 0, 1)</p>
        <p>upperFA = Curve(0, 1−s, (1−s)^2, s, 0, 1)</p>
        <p>lowerAB = Curve(s, 0, 0, s, 0, 1)</p>
        <p>lowerBC = Curve(1, s/2, 0, s, 0, 1)</p>
        <p>lowerCD = Curve(1−s/2, 1/2, 0, s, 0, 1)</p>
        <p>lowerDE = Curve(1/2, (1+s)/2, 0, s, 0, 1)</p>
        <p>lowerEF = Curve((1−s)/2, 1, 0, s, 0, 1)</p>
        <p>lowerFA = Curve(0, 1−s, 0, s, 0, 1)</p>
        <p>edgeB = Segment((1, 0, 0), (1, 0, 1))</p>
        <p>edgeC = Segment((1, 1/2, 0), (1, 1/2, 5/4))</p>
        <p>edgeD = Segment((1/2, 1/2, 0), (1/2, 1/2, 1/2))</p>
        <p>edgeE = Segment((1/2, 1, 0), (1/2, 1, 5/4))</p>
        <p>edgeF = Segment((0, 1, 0), (0, 1, 1))</p>
        <p>A.2.4. Adjust opacity and hide the coordinate plane. Each patch retains its name for individual inspection.</p>
        <p>SetFilling(roof1, 0.45)</p>
        <p>SetFilling(roof2, 0.45)</p>
        <p>SetFilling(roof3, 0.45)</p>
        <p>SetFilling(roof4, 0.45)</p>
        <p>SetFilling(floor1, 0.45)</p>
        <p>SetFilling(floor2, 0.45)</p>
        <p>SetFilling(floor3, 0.45)</p>
        <p>SetFilling(floor4, 0.45)</p>
        <p>SetFilling(wallAB, 0.45)</p>
        <p>SetFilling(wallBC, 0.45)</p>
        <p>SetFilling(wallCD, 0.45)</p>
        <p>SetFilling(wallDE, 0.45)</p>
        <p>SetFilling(wallEF, 0.45)</p>
        <p>SetFilling(wallFA, 0.45)</p>
        <p>SetVisibleInView(xOyPlane, −1, false)</p>
        <p>The roof consists of roof1, roof2, roof3, and roof4. To obtain an open view, hide all four objects in the Algebra view; hiding only one removes just one patch. Restore them after inspection.</p>
        <p>A.3. Annular Base between Two Curved Surfaces</p>
        <p>A.3.1. Create the roof and floor. The radius ranges from 1 to 2, and the parameter t measures the angle in radians. Do not create sliders for r or t.</p>
        <p>roofPatch = Surface(r*cos(t), r*sin(t), 3−r^2/4, r, 1, 2, t, 0, 2*pi)</p>
        <p>floorPatch = Surface(r*cos(t), r*sin(t), r^2/4, r, 1, 2, t, 0, 2*pi)</p>
        <p>A.3.2. Create the outer and inner walls. The negative sign in the inner wall’s y-coordinate establishes clockwise traversal.</p>
        <p>outerWall = Surface(2*cos(t), 2*sin(t), 1+q, t, 0, 2*pi, q, 0, 1)</p>
        <p>innerWall = Surface(cos(t), −sin(t), 1/4+5*q/2, t, 0, 2*pi, q, 0, 1)</p>
        <p>A.3.3. Create the four circular edges. Do not add vertical segments or radial walls.</p>
        <p>upperOuter = Curve(2*cos(t), 2*sin(t), 2, t, 0, 2*pi)</p>
        <p>lowerOuter = Curve(2*cos(t), 2*sin(t), 1, t, 0, 2*pi)</p>
        <p>upperInner = Curve(cos(t), −sin(t), 11/4, t, 0, 2*pi)</p>
        <p>lowerInner = Curve(cos(t), −sin(t), 1/4, t, 0, 2*pi)</p>
        <p>A.3.4. Adjust the display. The visible floor is curved and does not coincide with the coordinate plane.</p>
        <p>SetFilling(roofPatch, 0.45)</p>
        <p>SetFilling(floorPatch, 0.45)</p>
        <p>SetFilling(outerWall, 0.45)</p>
        <p>SetFilling(innerWall, 0.45)</p>
        <p>SetVisibleInView(xOyPlane, −1, false)</p>
        <p>Temporarily hiding roofPatch allows inspection of the inner wall and floor. Restore the roof for a complete view of the solid.</p>
      </sec>
      <sec id="sec11dot2">
        <title>Appendix B. Reproducible Mathematical Checks</title>
        <p>This appendix develops calculations supporting the reference values. It does not replace execution testing of the listings. Every quantity is exact and follows from the published parameterizations, not from measurements on a figure.</p>
        <p>B.1. Volume and Interpolation over the Triangular Base</p>
        <p>Integrating first with respect to <inline-formula><mml:math><mml:mi> t </mml:mi></mml:math></inline-formula> gives</p>
        <disp-formula id="FD34">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>V</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:mo>[</mml:mo>
                      <mml:mrow>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:mn>1</mml:mn>
                            <mml:mo>+</mml:mo>
                            <mml:msup>
                              <mml:mi>s</mml:mi>
                              <mml:mn>2</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:mn>1</mml:mn>
                            <mml:mo>−</mml:mo>
                            <mml:mi>s</mml:mi>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                        <mml:mo>+</mml:mo>
                        <mml:mfrac>
                          <mml:mrow>
                            <mml:msup>
                              <mml:mrow>
                                <mml:mrow>
                                  <mml:mo>(</mml:mo>
                                  <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo>−</mml:mo>
                                    <mml:mi>s</mml:mi>
                                  </mml:mrow>
                                  <mml:mo>)</mml:mo>
                                </mml:mrow>
                              </mml:mrow>
                              <mml:mn>3</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                          <mml:mn>3</mml:mn>
                        </mml:mfrac>
                      </mml:mrow>
                      <mml:mo>]</mml:mo>
                    </mml:mrow>
                    <mml:mtext>d</mml:mtext>
                    <mml:mi>s</mml:mi>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>1</mml:mn>
                <mml:mn>2</mml:mn>
              </mml:mfrac>
              <mml:mo>+</mml:mo>
              <mml:mfrac>
                <mml:mn>1</mml:mn>
                <mml:mrow>
                  <mml:mn>12</mml:mn>
                </mml:mrow>
              </mml:mfrac>
              <mml:mo>+</mml:mo>
              <mml:mfrac>
                <mml:mn>1</mml:mn>
                <mml:mrow>
                  <mml:mn>12</mml:mn>
                </mml:mrow>
              </mml:mfrac>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>2</mml:mn>
                <mml:mn>3</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The integral of the affine function interpolating heights 1, 2, and 2 is the triangle’s area multiplied by the mean of the three vertex heights: <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> / </mml:mo><mml:mn> 2 </mml:mn></mml:mrow></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> + </mml:mo><mml:mn> 2 </mml:mn><mml:mo> + </mml:mo><mml:mn> 2 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> / </mml:mo><mml:mn> 3 </mml:mn></mml:mrow><mml:mo> = </mml:mo><mml:mrow><mml:mn> 5 </mml:mn><mml:mo> / </mml:mo><mml:mn> 6 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> . The relative excess is <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mrow><mml:mn> 5 </mml:mn><mml:mo> / </mml:mo><mml:mn> 6 </mml:mn></mml:mrow><mml:mo> − </mml:mo><mml:mrow><mml:mn> 2 </mml:mn><mml:mo> / </mml:mo><mml:mn> 3 </mml:mn></mml:mrow></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> / </mml:mo><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mrow><mml:mn> 2 </mml:mn><mml:mo> / </mml:mo><mml:mn> 3 </mml:mn></mml:mrow></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo> = </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> / </mml:mo><mml:mn> 4 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> . This comparison distinguishes two mathematical models; it does not measure a rendering error.</p>
        <p>B.2. Coverage, Edges, and Volumes of the L-Shaped Base</p>
        <p>Diagonal <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> divides the square <inline-formula><mml:math><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> / </mml:mo><mml:mn> 2 </mml:mn></mml:mrow></mml:mrow><mml:mo> ] </mml:mo></mml:mrow></mml:mrow><mml:mn> 2 </mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> into two halves contained in <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> B </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> D </mml:mi><mml:mi> F </mml:mi></mml:mrow></mml:math></inline-formula> , respectively. Outside that square, the remaining portions of <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> B </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> B </mml:mi><mml:mi> C </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> partition the horizontal arm, while those of <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> D </mml:mi><mml:mi> F </mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mi> D </mml:mi><mml:mi> E </mml:mi><mml:mi> F </mml:mi></mml:mrow></mml:math></inline-formula> partition the vertical arm. Their interiors do not overlap: the separating edges are precisely <inline-formula><mml:math><mml:mrow><mml:mi> A </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> B </mml:mi><mml:mi> D </mml:mi></mml:mrow></mml:math></inline-formula> , and <inline-formula><mml:math><mml:mrow><mml:mi> D </mml:mi><mml:mi> F </mml:mi></mml:mrow></mml:math></inline-formula> . This establishes coverage in addition to the area equality in <bold>Table 3</bold>.</p>
        <p>Agreement of the maps in <bold>Table 3</bold> along the three interior edges can be checked using the following identities for <inline-formula><mml:math><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> ≤ </mml:mo><mml:mi> u </mml:mi><mml:mo> ≤ </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> :</p>
        <disp-formula id="FD35">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>ϕ</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>0</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mi>u</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:msub>
                <mml:mi>ϕ</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>u</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>0</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mi>u</mml:mi>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mi>u</mml:mi>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD36">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>ϕ</mml:mi>
                <mml:mn>1</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>u</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:msub>
                <mml:mi>ϕ</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>0</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>u</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mo>(</mml:mo>
                        <mml:mrow>
                          <mml:mn>1</mml:mn>
                          <mml:mo>+</mml:mo>
                          <mml:mi>u</mml:mi>
                        </mml:mrow>
                        <mml:mo>)</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mo>(</mml:mo>
                        <mml:mrow>
                          <mml:mn>1</mml:mn>
                          <mml:mo>−</mml:mo>
                          <mml:mi>u</mml:mi>
                        </mml:mrow>
                        <mml:mo>)</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD37">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>ϕ</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>u</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:msub>
                <mml:mi>ϕ</mml:mi>
                <mml:mn>4</mml:mn>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>0</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>u</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mi>u</mml:mi>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mrow>
                    <mml:mi>u</mml:mi>
                    <mml:mo>/</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Evaluating the same function <inline-formula><mml:math><mml:mrow><mml:msup><mml:mi> x </mml:mi><mml:mn> 2 </mml:mn></mml:msup><mml:mo> + </mml:mo><mml:msup><mml:mi> y </mml:mi><mml:mn> 2 </mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> on both sides of each identity also gives matching roof traces; the same holds for the floor with zero height. No walls are required at these joins. On every exterior segment, Equation (5) also satisfies <inline-formula><mml:math><mml:mrow><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> W </mml:mi></mml:mstyle><mml:mi> j </mml:mi></mml:msub><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:msubsup><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> C </mml:mi></mml:mstyle><mml:mi> j </mml:mi><mml:mi> g </mml:mi></mml:msubsup><mml:mrow><mml:mo> ( </mml:mo><mml:mi> s </mml:mi><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> W </mml:mi></mml:mstyle><mml:mi> j </mml:mi></mml:msub><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:msubsup><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> C </mml:mi></mml:mstyle><mml:mi> j </mml:mi><mml:mi> f </mml:mi></mml:msubsup><mml:mrow><mml:mo> ( </mml:mo><mml:mi> s </mml:mi><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , with identically zero differences in all three coordinates.</p>
        <p>The triangle volumes can be verified by integrating the expressions in <bold>Table 3</bold> or by using the barycentric moments <inline-formula><mml:math><mml:mrow><mml:mstyle displaystyle="true"><mml:mrow><mml:msub><mml:mo> ∫ </mml:mo><mml:mi> T </mml:mi></mml:msub><mml:mrow><mml:msubsup><mml:mi> λ </mml:mi><mml:mi> i </mml:mi><mml:mn> 2 </mml:mn></mml:msubsup><mml:mtext>   </mml:mtext><mml:mtext> d </mml:mtext><mml:mi> A </mml:mi></mml:mrow></mml:mrow></mml:mstyle><mml:mo> = </mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi> A </mml:mi><mml:mi> T </mml:mi></mml:msub></mml:mrow><mml:mo> / </mml:mo><mml:mn> 6 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mstyle displaystyle="true"><mml:mrow><mml:msub><mml:mo> ∫ </mml:mo><mml:mi> T </mml:mi></mml:msub><mml:mrow><mml:msub><mml:mi> λ </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:msub><mml:mi> λ </mml:mi><mml:mi> j </mml:mi></mml:msub><mml:mtext>   </mml:mtext><mml:mtext> d </mml:mtext><mml:mi> A </mml:mi></mml:mrow></mml:mrow></mml:mstyle><mml:mo> = </mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi> A </mml:mi><mml:mi> T </mml:mi></mml:msub></mml:mrow><mml:mo> / </mml:mo><mml:mrow><mml:mn> 12 </mml:mn></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula> for <inline-formula><mml:math><mml:mrow><mml:mi> i </mml:mi><mml:mo> ≠ </mml:mo><mml:mi> j </mml:mi></mml:mrow></mml:math></inline-formula> , obtained by substituting Equations (3) and (4). For planar vertices <inline-formula><mml:math><mml:mrow><mml:mi> P </mml:mi><mml:mo> , </mml:mo><mml:mi> Q </mml:mi><mml:mo> , </mml:mo><mml:mi> R </mml:mi></mml:mrow></mml:math></inline-formula> , these give</p>
        <disp-formula id="FD38">
          <mml:math>
            <mml:mrow>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msub>
                    <mml:mo>∫</mml:mo>
                    <mml:mi>T</mml:mi>
                  </mml:msub>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:mo>(</mml:mo>
                      <mml:mrow>
                        <mml:msup>
                          <mml:mi>x</mml:mi>
                          <mml:mn>2</mml:mn>
                        </mml:msup>
                        <mml:mo>+</mml:mo>
                        <mml:msup>
                          <mml:mi>y</mml:mi>
                          <mml:mn>2</mml:mn>
                        </mml:msup>
                      </mml:mrow>
                      <mml:mo>)</mml:mo>
                    </mml:mrow>
                    <mml:mtext>
                       
                    </mml:mtext>
                    <mml:mtext>d</mml:mtext>
                    <mml:mi>A</mml:mi>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:msub>
                    <mml:mi>A</mml:mi>
                    <mml:mi>T</mml:mi>
                  </mml:msub>
                </mml:mrow>
                <mml:mn>6</mml:mn>
              </mml:mfrac>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msup>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mo>‖</mml:mo>
                        <mml:mi>P</mml:mi>
                        <mml:mo>‖</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>+</mml:mo>
                  <mml:msup>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mo>‖</mml:mo>
                        <mml:mi>Q</mml:mi>
                        <mml:mo>‖</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>+</mml:mo>
                  <mml:msup>
                    <mml:mrow>
                      <mml:mrow>
                        <mml:mo>‖</mml:mo>
                        <mml:mi>R</mml:mi>
                        <mml:mo>‖</mml:mo>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>+</mml:mo>
                  <mml:mi>P</mml:mi>
                  <mml:mo>⋅</mml:mo>
                  <mml:mi>Q</mml:mi>
                  <mml:mo>+</mml:mo>
                  <mml:mi>P</mml:mi>
                  <mml:mo>⋅</mml:mo>
                  <mml:mi>R</mml:mi>
                  <mml:mo>+</mml:mo>
                  <mml:mi>Q</mml:mi>
                  <mml:mo>⋅</mml:mo>
                  <mml:mi>R</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Substitution for the four triangles gives 1/12, 1/12, 5/48, and 5/48, summing to 3/8. In contrast, affine interpolation of the heights gives <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> A </mml:mi><mml:mi> T </mml:mi></mml:msub><mml:mrow><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo> ‖ </mml:mo><mml:mi> P </mml:mi><mml:mo> ‖ </mml:mo></mml:mrow></mml:mrow><mml:mn> 2 </mml:mn></mml:msup><mml:mo> + </mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo> ‖ </mml:mo><mml:mi> Q </mml:mi><mml:mo> ‖ </mml:mo></mml:mrow></mml:mrow><mml:mn> 2 </mml:mn></mml:msup><mml:mo> + </mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo> ‖ </mml:mo><mml:mi> R </mml:mi><mml:mo> ‖ </mml:mo></mml:mrow></mml:mrow><mml:mn> 2 </mml:mn></mml:msup></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> / </mml:mo><mml:mn> 3 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> . The sum is <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> / </mml:mo><mml:mn> 8 </mml:mn></mml:mrow><mml:mo> + </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> / </mml:mo><mml:mn> 8 </mml:mn></mml:mrow><mml:mo> + </mml:mo><mml:mrow><mml:mrow><mml:mn> 11 </mml:mn></mml:mrow><mml:mo> / </mml:mo><mml:mrow><mml:mn> 96 </mml:mn></mml:mrow></mml:mrow><mml:mo> + </mml:mo><mml:mrow><mml:mrow><mml:mn> 11 </mml:mn></mml:mrow><mml:mo> / </mml:mo><mml:mrow><mml:mn> 96 </mml:mn></mml:mrow></mml:mrow><mml:mo> = </mml:mo><mml:mrow><mml:mrow><mml:mn> 23 </mml:mn></mml:mrow><mml:mo> / </mml:mo><mml:mrow><mml:mn> 48 </mml:mn></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula> , and the relative excess is 5/18. The Cartesian decomposition in Section 5.2 provides an independent check of the correct volume.</p>
        <p>B.3. Volume and Flux of the Annular Region</p>
        <p>The radial volume integral evaluates to</p>
        <disp-formula id="FD39">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>V</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>π</mml:mi>
              <mml:msubsup>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mo>[</mml:mo>
                    <mml:mrow>
                      <mml:mfrac>
                        <mml:mn>3</mml:mn>
                        <mml:mn>2</mml:mn>
                      </mml:mfrac>
                      <mml:msup>
                        <mml:mi>r</mml:mi>
                        <mml:mn>2</mml:mn>
                      </mml:msup>
                      <mml:mo>−</mml:mo>
                      <mml:mfrac>
                        <mml:mn>1</mml:mn>
                        <mml:mn>8</mml:mn>
                      </mml:mfrac>
                      <mml:msup>
                        <mml:mi>r</mml:mi>
                        <mml:mn>4</mml:mn>
                      </mml:msup>
                    </mml:mrow>
                    <mml:mo>]</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mn>1</mml:mn>
                <mml:mn>2</mml:mn>
              </mml:msubsup>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>21</mml:mn>
                  <mml:mi>π</mml:mi>
                </mml:mrow>
                <mml:mn>4</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>For <inline-formula><mml:math><mml:mrow><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> F </mml:mi></mml:mstyle><mml:mo> = </mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi><mml:mo> , </mml:mo><mml:mi> z </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> / </mml:mo><mml:mn> 3 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> , the outward-oriented roof and floor parameterizations give the flux integrands</p>
        <disp-formula id="FD40">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>I</mml:mi>
                <mml:mi>f</mml:mi>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>r</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>θ</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mi>r</mml:mi>
              <mml:mo>+</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:msup>
                    <mml:mi>r</mml:mi>
                    <mml:mn>3</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mrow>
                  <mml:mn>12</mml:mn>
                </mml:mrow>
              </mml:mfrac>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>I</mml:mi>
                <mml:mi>g</mml:mi>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>r</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>θ</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:msup>
                    <mml:mi>r</mml:mi>
                    <mml:mn>3</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mrow>
                  <mml:mn>12</mml:mn>
                </mml:mrow>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Consequently,</p>
        <disp-formula id="FD41">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>Φ</mml:mi>
                <mml:mi>f</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>π</mml:mi>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>1</mml:mn>
                    <mml:mn>2</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mrow>
                      <mml:mo>(</mml:mo>
                      <mml:mrow>
                        <mml:mi>r</mml:mi>
                        <mml:mo>+</mml:mo>
                        <mml:mfrac>
                          <mml:mrow>
                            <mml:msup>
                              <mml:mi>r</mml:mi>
                              <mml:mn>3</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                          <mml:mrow>
                            <mml:mn>12</mml:mn>
                          </mml:mrow>
                        </mml:mfrac>
                      </mml:mrow>
                      <mml:mo>)</mml:mo>
                    </mml:mrow>
                    <mml:mtext>d</mml:mtext>
                    <mml:mi>r</mml:mi>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>29</mml:mn>
                  <mml:mi>π</mml:mi>
                </mml:mrow>
                <mml:mn>8</mml:mn>
              </mml:mfrac>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>Φ</mml:mi>
                <mml:mi>g</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>π</mml:mi>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>1</mml:mn>
                    <mml:mn>2</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mfrac>
                      <mml:mrow>
                        <mml:msup>
                          <mml:mi>r</mml:mi>
                          <mml:mn>3</mml:mn>
                        </mml:msup>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mn>12</mml:mn>
                      </mml:mrow>
                    </mml:mfrac>
                    <mml:mtext>
                       
                    </mml:mtext>
                    <mml:mtext>d</mml:mtext>
                    <mml:mi>r</mml:mi>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>5</mml:mn>
                  <mml:mi>π</mml:mi>
                </mml:mrow>
                <mml:mn>8</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>For the outer wall, <inline-formula><mml:math><mml:mrow><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> W </mml:mi></mml:mstyle><mml:mrow><mml:mi> e </mml:mi><mml:mo> , </mml:mo><mml:mi> θ </mml:mi></mml:mrow></mml:msub><mml:mo> × </mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> W </mml:mi></mml:mstyle><mml:mrow><mml:mi> e </mml:mi><mml:mo> , </mml:mo><mml:mi> q </mml:mi></mml:mrow></mml:msub><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 2 </mml:mn><mml:mi> cos </mml:mi><mml:mi> θ </mml:mi><mml:mo> , </mml:mo><mml:mn> 2 </mml:mn><mml:mi> sin </mml:mi><mml:mi> θ </mml:mi><mml:mo> , </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> F </mml:mi></mml:mstyle><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> W </mml:mi></mml:mstyle><mml:mi> e </mml:mi></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> ⋅ </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> W </mml:mi></mml:mstyle><mml:mrow><mml:mi> e </mml:mi><mml:mo> , </mml:mo><mml:mi> θ </mml:mi></mml:mrow></mml:msub><mml:mo> × </mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi> W </mml:mi></mml:mstyle><mml:mrow><mml:mi> e </mml:mi><mml:mo> , </mml:mo><mml:mi> q </mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mrow><mml:mn> 4 </mml:mn><mml:mo> / </mml:mo><mml:mn> 3 </mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula> . For the inner wall, the normal cross product is <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mo> − </mml:mo><mml:mrow><mml:mrow><mml:mn> 5 </mml:mn><mml:mi> cos </mml:mi><mml:mi> θ </mml:mi></mml:mrow><mml:mo> / </mml:mo><mml:mn> 2 </mml:mn></mml:mrow><mml:mo> , </mml:mo><mml:mrow><mml:mrow><mml:mn> 5 </mml:mn><mml:mi> sin </mml:mi><mml:mi> θ </mml:mi></mml:mrow><mml:mo> / </mml:mo><mml:mn> 2 </mml:mn></mml:mrow><mml:mo> , </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , and the integrand is −5/6. Thus,</p>
        <disp-formula id="FD42">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>Φ</mml:mi>
                <mml:mi>e</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mrow>
                      <mml:mn>2</mml:mn>
                      <mml:mi>π</mml:mi>
                    </mml:mrow>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mn>1</mml:mn>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mfrac>
                            <mml:mn>4</mml:mn>
                            <mml:mn>3</mml:mn>
                          </mml:mfrac>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>q</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>θ</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>8</mml:mn>
                  <mml:mi>π</mml:mi>
                </mml:mrow>
                <mml:mn>3</mml:mn>
              </mml:mfrac>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msub>
                <mml:mi>Φ</mml:mi>
                <mml:mi>i</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mrow>
                      <mml:mn>2</mml:mn>
                      <mml:mi>π</mml:mi>
                    </mml:mrow>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mn>1</mml:mn>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mo>−</mml:mo>
                          <mml:mfrac>
                            <mml:mn>5</mml:mn>
                            <mml:mn>6</mml:mn>
                          </mml:mfrac>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>q</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>θ</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mo>−</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>5</mml:mn>
                  <mml:mi>π</mml:mi>
                </mml:mrow>
                <mml:mn>3</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The four contributions sum to <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> Φ </mml:mi><mml:mi> f </mml:mi></mml:msub><mml:mo> + </mml:mo><mml:msub><mml:mi> Φ </mml:mi><mml:mi> g </mml:mi></mml:msub><mml:mo> + </mml:mo><mml:msub><mml:mi> Φ </mml:mi><mml:mi> e </mml:mi></mml:msub><mml:mo> + </mml:mo><mml:msub><mml:mi> Φ </mml:mi><mml:mi> i </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mrow><mml:mrow><mml:mn> 21 </mml:mn><mml:mi> π </mml:mi></mml:mrow><mml:mo> / </mml:mo><mml:mn> 4 </mml:mn></mml:mrow><mml:mo> = </mml:mo><mml:msub><mml:mi> V </mml:mi><mml:mn> 3 </mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> . Orienting the inner wall toward the hole explains its negative sign and agrees with the divergence theorem [<xref ref-type="bibr" rid="B1">1</xref>] (Section 6.8).</p>
      </sec>
      <sec id="sec11dot3">
        <title>Appendix C. Eleven Additional Exercises: Formulations and Complete Commands</title>
        <p>This appendix is part of the paper. The case identifiers correspond to those in <bold>Table 6</bold> and <bold>Figures A1-A3</bold>. In every case, the floor is <italic>z</italic> = 0 and the roof has height H. The coordinates <italic>X</italic> and <italic>Y</italic> parameterize the base; the commands already contain the substituted expressions and require no auxiliary functions. Enter each block in an empty construction, one instruction at a time. Command names are in English. The inequalities specify each problem unambiguously, independently of its exercise number.</p>
        <p>Volumes are derived analytically and are not attributed to graphical measurements. Camera position, color, opacity, and dashed-line settings control presentation and are not part of the geometric definition. The supplied screenshots may use different settings without changing the equations.</p>
        <p>C.1. E04: Plane over a Base between <italic>y</italic>= <italic>x</italic><sup>4</sup> and <italic>y</italic> = <italic>x</italic></p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>], Exercise 19.</p>
        <disp-formula id="FD43">
          <mml:math>
            <mml:mrow>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msup>
                <mml:mi>x</mml:mi>
                <mml:mn>4</mml:mn>
              </mml:msup>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>+</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>y</mml:mi>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD44">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:msup>
                <mml:mi>t</mml:mi>
                <mml:mn>4</mml:mn>
              </mml:msup>
              <mml:mo>+</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>t</mml:mi>
                  <mml:mo>−</mml:mo>
                  <mml:msup>
                    <mml:mi>t</mml:mi>
                    <mml:mn>4</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>X</mml:mi>
              <mml:mo>+</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>Y</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The walls follow <italic>y</italic> = <italic>x</italic><sup>4</sup> and <italic>y</italic> = <italic>x</italic>. The height vanishes at the origin; a vertical edge of length 3 lies above (1, 1).</p>
        <p>Integral check:</p>
        <disp-formula id="FD45">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mrow>
                            <mml:msup>
                              <mml:mi>x</mml:mi>
                              <mml:mn>4</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                          <mml:mi>x</mml:mi>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:mi>x</mml:mi>
                              <mml:mo>+</mml:mo>
                              <mml:mn>2</mml:mn>
                              <mml:mi>y</mml:mi>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>7</mml:mn>
                <mml:mrow>
                  <mml:mn>18</mml:mn>
                </mml:mrow>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(t, t^4+s*(t−t^4), 0, s, 0, 1, t, 0, 1)</p>
        <p>roofPatch = Surface(t, t^4+s*(t−t^4), t+2*(t^4+s*(t−t^4)), s, 0, 1, t, 0, 1)</p>
        <p>wallQuartic = Surface(t, t^4, q*(t+2*t^4), t, 0, 1, q, 0, 1)</p>
        <p>wallLine = Surface(t, t, 3*q*t, t, 0, 1, q, 0, 1)</p>
        <p>lowerQuartic = Curve(t, t^4, 0, t, 0, 1)</p>
        <p>upperQuartic = Curve(t, t^4, t+2*t^4, t, 0, 1)</p>
        <p>lowerLine = Curve(t, t, 0, t, 0, 1)</p>
        <p>upperLine = Curve(t, t, 3*t, t, 0, 1)</p>
        <p>edgeAtOne = Curve(1, 1, 3*q, q, 0, 1)</p>
        <p>C.2. E05: Base between <italic>x</italic> = <italic>y</italic>³ and <italic>x</italic> = <italic>y</italic><sup>2</sup></p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>], Exercise 20.</p>
        <disp-formula id="FD46">
          <mml:math>
            <mml:mrow>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msup>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>x</mml:mi>
              <mml:mo>+</mml:mo>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD47">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:msup>
                <mml:mi>t</mml:mi>
                <mml:mn>3</mml:mn>
              </mml:msup>
              <mml:mo>+</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msup>
                    <mml:mi>t</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>−</mml:mo>
                  <mml:msup>
                    <mml:mi>t</mml:mi>
                    <mml:mn>3</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>X</mml:mi>
              <mml:mo>+</mml:mo>
              <mml:msup>
                <mml:mi>Y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Both curved walls are included, along with the single nondegenerate vertical edge above (1, 1).</p>
        <p>Integral check:</p>
        <disp-formula id="FD48">
          <mml:math display="inline">
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mrow>
                            <mml:msup>
                              <mml:mi>y</mml:mi>
                              <mml:mn>3</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                          <mml:mrow>
                            <mml:msup>
                              <mml:mi>y</mml:mi>
                              <mml:mn>2</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:mn>2</mml:mn>
                              <mml:mi>x</mml:mi>
                              <mml:mo>+</mml:mo>
                              <mml:msup>
                                <mml:mi>y</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>19</mml:mn>
                </mml:mrow>
                <mml:mrow>
                  <mml:mn>210</mml:mn>
                </mml:mrow>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(t^3+s*(t^2−t^3), t, 0, s, 0, 1, t, 0, 1)</p>
        <p>roofPatch = Surface(t^3+s*(t^2−t^3), t, 2*(t^3+s*(t^2−t^3))+t^2, s, 0, 1, t, 0, 1)</p>
        <p>wallCubic = Surface(t^3, t, q*(2*t^3+t^2), t, 0, 1, q, 0, 1)</p>
        <p>wallQuadratic = Surface(t^2, t, 3*q*t^2, t, 0, 1, q, 0, 1)</p>
        <p>lowerCubic = Curve(t^3, t, 0, t, 0, 1)</p>
        <p>upperCubic = Curve(t^3, t, 2*t^3+t^2, t, 0, 1)</p>
        <p>lowerQuadratic = Curve(t^2, t, 0, t, 0, 1)</p>
        <p>upperQuadratic = Curve(t^2, t, 3*t^2, t, 0, 1)</p>
        <p>edgeAtOne = Curve(1, 1, 3*q, q, 0, 1)</p>
        <p>C.3. E06: Roof <italic>z</italic>= <italic>xy</italic> over a Triangular Base</p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>], Exercise 21.</p>
        <disp-formula id="FD49">
          <mml:math>
            <mml:mrow>
              <mml:mn>1</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>4</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>1</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mrow>
                <mml:mrow>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mn>7</mml:mn>
                      <mml:mo>−</mml:mo>
                      <mml:mi>x</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>/</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mi>y</mml:mi>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD50">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>+</mml:mo>
              <mml:mn>3</mml:mn>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>+</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>X</mml:mi>
              <mml:mi>Y</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The planar vertices are (1, 1), (4, 1), and (1, 2). The product XY is evaluated; the roof is not replaced by the plane interpolating the three vertex heights.</p>
        <p>Integral check:</p>
        <disp-formula id="FD51">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>1</mml:mn>
                    <mml:mn>4</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>1</mml:mn>
                          <mml:mrow>
                            <mml:mrow>
                              <mml:mrow>
                                <mml:mrow>
                                  <mml:mo>(</mml:mo>
                                  <mml:mrow>
                                    <mml:mn>7</mml:mn>
                                    <mml:mo>−</mml:mo>
                                    <mml:mi>x</mml:mi>
                                  </mml:mrow>
                                  <mml:mo>)</mml:mo>
                                </mml:mrow>
                              </mml:mrow>
                              <mml:mo>/</mml:mo>
                              <mml:mn>3</mml:mn>
                            </mml:mrow>
                          </mml:mrow>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mi>x</mml:mi>
                          <mml:mi>y</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>31</mml:mn>
                </mml:mrow>
                <mml:mn>8</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(1+3*s, 1+(1−s)*t, 0, s, 0, 1, t, 0, 1)</p>
        <p>roofPatch = Surface(1+3*s, 1+(1−s)*t, (1+3*s)*(1+(1−s)*t), s, 0, 1, t, 0, 1)</p>
        <p>wallAB = Surface(1+3*t, 1, q*(1+3*t), t, 0, 1, q, 0, 1)</p>
        <p>wallBC = Surface(4−3*t, 1+t, q*(4−3*t)*(1+t), t, 0, 1, q, 0, 1)</p>
        <p>wallCA = Surface(1, 2−t, q*(2−t), t, 0, 1, q, 0, 1)</p>
        <p>lowerAB = Curve(1+3*t, 1, 0, t, 0, 1)</p>
        <p>upperAB = Curve(1+3*t, 1, 1+3*t, t, 0, 1)</p>
        <p>lowerBC = Curve(4−3*t, 1+t, 0, t, 0, 1)</p>
        <p>upperBC = Curve(4−3*t, 1+t, (4−3*t)*(1+t), t, 0, 1)</p>
        <p>lowerCA = Curve(1, 2−t, 0, t, 0, 1)</p>
        <p>upperCA = Curve(1, 2−t, 2−t, t, 0, 1)</p>
        <p>edgeA = Curve(1, 1, q, q, 0, 1)</p>
        <p>edgeB = Curve(4, 1, 4*q, q, 0, 1)</p>
        <p>edgeC = Curve(1, 2, 2*q, q, 0, 1)</p>
        <p>C.4. E07: Paraboloid over a Triangular Base</p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>], Exercise 22.</p>
        <disp-formula id="FD52">
          <mml:math>
            <mml:mrow>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:msup>
                <mml:mi>x</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>+</mml:mo>
              <mml:mn>3</mml:mn>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD53">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:msup>
                <mml:mi>t</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msup>
                    <mml:mi>s</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                  <mml:mo>+</mml:mo>
                  <mml:mn>3</mml:mn>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The three walls correspond to <italic>x</italic> = 0, <italic>y</italic> = 1, and <italic>y</italic> = <italic>x</italic>. The height vanishes only at the origin.</p>
        <p>Integral check:</p>
        <disp-formula id="FD54">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mi>y</mml:mi>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:msup>
                                <mml:mi>x</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                              <mml:mo>+</mml:mo>
                              <mml:mn>3</mml:mn>
                              <mml:msup>
                                <mml:mi>y</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>5</mml:mn>
                <mml:mn>6</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(s*t, t, 0, s, 0, 1, t, 0, 1)</p>
        <p>roofPatch = Surface(s*t, t, t^2*(s^2+3), s, 0, 1, t, 0, 1)</p>
        <p>wallXZero = Surface(0, t, 3*q*t^2, t, 0, 1, q, 0, 1)</p>
        <p>wallYOne = Surface(t, 1, q*(t^2+3), t, 0, 1, q, 0, 1)</p>
        <p>wallDiagonal = Surface(t, t, 4*q*t^2, t, 0, 1, q, 0, 1)</p>
        <p>lowerXZero = Curve(0, t, 0, t, 0, 1)</p>
        <p>upperXZero = Curve(0, t, 3*t^2, t, 0, 1)</p>
        <p>lowerYOne = Curve(t, 1, 0, t, 0, 1)</p>
        <p>upperYOne = Curve(t, 1, t^2+3, t, 0, 1)</p>
        <p>lowerDiagonal = Curve(t, t, 0, t, 0, 1)</p>
        <p>upperDiagonal = Curve(t, t, 4*t^2, t, 0, 1)</p>
        <p>edgeAtZeroOne = Curve(0, 1, 3*q, q, 0, 1)</p>
        <p>edgeAtOneOne = Curve(1, 1, 4*q, q, 0, 1)</p>
        <p>C.5. E08: Tetrahedron Bounded by the Coordinate Planes</p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>], Exercise 23.</p>
        <disp-formula id="FD55">
          <mml:math>
            <mml:mrow>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>3</mml:mn>
              <mml:mo>−</mml:mo>
              <mml:mrow>
                <mml:mrow>
                  <mml:mn>3</mml:mn>
                  <mml:mi>x</mml:mi>
                </mml:mrow>
                <mml:mo>/</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>6</mml:mn>
              <mml:mo>−</mml:mo>
              <mml:mn>3</mml:mn>
              <mml:mi>x</mml:mi>
              <mml:mo>−</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>y</mml:mi>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD56">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>3</mml:mn>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>6</mml:mn>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>t</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The roof and floor meet along 3<italic>x</italic> + 2<italic>y</italic> = 6, where there is no vertical wall of positive area.</p>
        <p>Integral check:</p>
        <disp-formula id="FD57">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mn>0</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mrow>
                            <mml:mn>3</mml:mn>
                            <mml:mo>−</mml:mo>
                            <mml:mrow>
                              <mml:mrow>
                                <mml:mn>3</mml:mn>
                                <mml:mi>x</mml:mi>
                              </mml:mrow>
                              <mml:mo>/</mml:mo>
                              <mml:mn>2</mml:mn>
                            </mml:mrow>
                          </mml:mrow>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:mn>6</mml:mn>
                              <mml:mo>−</mml:mo>
                              <mml:mn>3</mml:mn>
                              <mml:mi>x</mml:mi>
                              <mml:mo>−</mml:mo>
                              <mml:mn>2</mml:mn>
                              <mml:mi>y</mml:mi>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mn>6.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(2*s, 3*(1−s)*t, 0, s, 0, 1, t, 0, 1)</p>
        <p>roofPatch = Surface(2*s, 3*(1−s)*t, 6*(1−s)*(1−t), s, 0, 1, t, 0, 1)</p>
        <p>wallXZero = Surface(0, 3*t, 6*q*(1−t), t, 0, 1, q, 0, 1)</p>
        <p>wallYZero = Surface(2*t, 0, 6*q*(1−t), t, 0, 1, q, 0, 1)</p>
        <p>lowerXAxis = Curve(2*t, 0, 0, t, 0, 1)</p>
        <p>lowerYAxis = Curve(0, 3*t, 0, t, 0, 1)</p>
        <p>sharedOblique = Curve(2*(1−t), 3*t, 0, t, 0, 1)</p>
        <p>upperXZ = Curve(2*t, 0, 6*(1−t), t, 0, 1)</p>
        <p>upperYZ = Curve(0, 3*t, 6*(1−t), t, 0, 1)</p>
        <p>edgeZAxis = Curve(0, 0, 6*q, q, 0, 1)</p>
        <p>C.6. E09: Solid Bounded by Four Planes</p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>], Exercise 24.</p>
        <disp-formula id="FD58">
          <mml:math>
            <mml:mrow>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mo>−</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD59">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>+</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The walls lie over <italic>y</italic> = <italic>x</italic> and <italic>y</italic> = 2 − <italic>x</italic>. At <italic>x</italic> = 0, the floor and roof share a segment.</p>
        <p>Integral check:</p>
        <disp-formula id="FD60">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mi>x</mml:mi>
                          <mml:mrow>
                            <mml:mn>2</mml:mn>
                            <mml:mo>−</mml:mo>
                            <mml:mi>x</mml:mi>
                          </mml:mrow>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mi>x</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>1</mml:mn>
                <mml:mn>3</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(s, s+2*(1−s)*t, 0, s, 0, 1, t, 0, 1)</p>
        <p>roofPatch = Surface(s, s+2*(1−s)*t, s, s, 0, 1, t, 0, 1)</p>
        <p>wallDiagonal = Surface(t, t, q*t, t, 0, 1, q, 0, 1)</p>
        <p>wallSumTwo = Surface(t, 2−t, q*t, t, 0, 1, q, 0, 1)</p>
        <p>lowerDiagonal = Curve(t, t, 0, t, 0, 1)</p>
        <p>lowerSumTwo = Curve(t, 2−t, 0, t, 0, 1)</p>
        <p>sharedXZero = Curve(0, 2*t, 0, t, 0, 1)</p>
        <p>upperDiagonal = Curve(t, t, t, t, 0, 1)</p>
        <p>upperSumTwo = Curve(t, 2−t, t, t, 0, 1)</p>
        <p>edgeAtOneOne = Curve(1, 1, q, q, 0, 1)</p>
        <p>C.7. E10: Two Lobes with Zero-Height Contact</p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>], Exercise 25.</p>
        <disp-formula id="FD61">
          <mml:math>
            <mml:mrow>
              <mml:mo>−</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msup>
                <mml:mi>x</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>4</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:msup>
                <mml:mi>x</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD62">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>X</mml:mi>
                <mml:mi>ε</mml:mi>
              </mml:msub>
              <mml:mo>=</mml:mo>
              <mml:mi>ε</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:msup>
                <mml:mi>t</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>+</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>4</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:msup>
                    <mml:mi>t</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:msup>
                <mml:mi>t</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>ε</mml:mi>
              <mml:mo>∈</mml:mo>
              <mml:mrow>
                <mml:mo>{</mml:mo>
                <mml:mrow>
                  <mml:mo>−</mml:mo>
                  <mml:mn>1</mml:mn>
                  <mml:mo>,</mml:mo>
                  <mml:mn>1</mml:mn>
                </mml:mrow>
                <mml:mo>}</mml:mo>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Use 0 ≤ <italic>s</italic> ≤ 1 and 0 ≤ <italic>t</italic> ≤ 2 on each half. The interior has two components whose closures meet at <italic>x</italic> = <italic>z</italic> = 0, 0 ≤ <italic>y</italic> ≤ 4. This segment is drawn once and generates no wall.</p>
        <p>Integral check:</p>
        <disp-formula id="FD63">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mrow>
                      <mml:mo>−</mml:mo>
                      <mml:mn>2</mml:mn>
                    </mml:mrow>
                    <mml:mn>2</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mrow>
                            <mml:msup>
                              <mml:mi>x</mml:mi>
                              <mml:mn>2</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                          <mml:mn>4</mml:mn>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:msup>
                            <mml:mi>x</mml:mi>
                            <mml:mn>2</mml:mn>
                          </mml:msup>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>128</mml:mn>
                </mml:mrow>
                <mml:mrow>
                  <mml:mn>15</mml:mn>
                </mml:mrow>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorNegative = Surface(−t, t^2+s*(4−t^2), 0, s, 0, 1, t, 0, 2)</p>
        <p>roofNegative = Surface(−t, t^2+s*(4−t^2), t^2, s, 0, 1, t, 0, 2)</p>
        <p>wallParabolaNegative = Surface(−t, t^2, q*t^2, t, 0, 2, q, 0, 1)</p>
        <p>wallCapNegative = Surface(−t, 4, q*t^2, t, 0, 2, q, 0, 1)</p>
        <p>lowerParabolaNegative = Curve(−t, t^2, 0, t, 0, 2)</p>
        <p>upperParabolaNegative = Curve(−t, t^2, t^2, t, 0, 2)</p>
        <p>lowerCapNegative = Curve(−t, 4, 0, t, 0, 2)</p>
        <p>upperCapNegative = Curve(−t, 4, t^2, t, 0, 2)</p>
        <p>floorPositive = Surface(t, t^2+s*(4−t^2), 0, s, 0, 1, t, 0, 2)</p>
        <p>roofPositive = Surface(t, t^2+s*(4−t^2), t^2, s, 0, 1, t, 0, 2)</p>
        <p>wallParabolaPositive = Surface(t, t^2, q*t^2, t, 0, 2, q, 0, 1)</p>
        <p>wallCapPositive = Surface(t, 4, q*t^2, t, 0, 2, q, 0, 1)</p>
        <p>lowerParabolaPositive = Curve(t, t^2, 0, t, 0, 2)</p>
        <p>upperParabolaPositive = Curve(t, t^2, t^2, t, 0, 2)</p>
        <p>lowerCapPositive = Curve(t, 4, 0, t, 0, 2)</p>
        <p>upperCapPositive = Curve(t, 4, t^2, t, 0, 2)</p>
        <p>edgeNegative = Curve(−2, 4, 4*q, q, 0, 1)</p>
        <p>edgePositive = Curve(2, 4, 4*q, q, 0, 1)</p>
        <p>contactLine = Curve(0, 4*t, 0, t, 0, 1)</p>
        <p>C.8. E11: Horizontal Cylinder in the First Octant</p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>], Exercise 26.</p>
        <disp-formula id="FD64">
          <mml:math>
            <mml:mrow>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>y</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:msqrt>
                <mml:mrow>
                  <mml:mn>4</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:msup>
                    <mml:mi>y</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                </mml:mrow>
              </mml:msqrt>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD65">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>4</mml:mn>
              <mml:mi>s</mml:mi>
              <mml:mi>sin</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>sin</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>2</mml:mn>
              <mml:mi>cos</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mrow>
                <mml:mi>π</mml:mi>
                <mml:mo>/</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The angular substitution represents the upper branch of <italic>y</italic><sup>2</sup> + <italic>z</italic><sup>2</sup> = 4. A wall at <italic>y</italic> = 2 is omitted because the height is zero there.</p>
        <p>Integral check:</p>
        <disp-formula id="FD66">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mn>2</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mrow>
                            <mml:mn>2</mml:mn>
                            <mml:mi>y</mml:mi>
                          </mml:mrow>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:msqrt>
                            <mml:mrow>
                              <mml:mn>4</mml:mn>
                              <mml:mo>−</mml:mo>
                              <mml:msup>
                                <mml:mi>y</mml:mi>
                                <mml:mn>2</mml:mn>
                              </mml:msup>
                            </mml:mrow>
                          </mml:msqrt>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mrow>
                  <mml:mn>16</mml:mn>
                </mml:mrow>
                <mml:mn>3</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(4*s*sin(t), 2*sin(t), 0, s, 0, 1, t, 0, π/2)</p>
        <p>roofPatch = Surface(4*s*sin(t), 2*sin(t), 2*cos(t), s, 0, 1, t, 0, π/2)</p>
        <p>wallXZero = Surface(0, 2*sin(t), 2*q*cos(t), t, 0, π/2, q, 0, 1)</p>
        <p>wallXTwiceY = Surface(4*sin(t), 2*sin(t), 2*q*cos(t), t, 0, π/2, q, 0, 1)</p>
        <p>lowerXZero = Curve(0, 2*t, 0, t, 0, 1)</p>
        <p>lowerXTwiceY = Curve(4*t, 2*t, 0, t, 0, 1)</p>
        <p>sharedYTwo = Curve(4*t, 2, 0, t, 0, 1)</p>
        <p>upperXZero = Curve(0, 2*sin(t), 2*cos(t), t, 0, π/2)</p>
        <p>upperXTwiceY = Curve(4*sin(t), 2*sin(t), 2*cos(t), t, 0, π/2)</p>
        <p>edgeZAxis = Curve(0, 0, 2*q, q, 0, 1)</p>
        <p>C.9. E12: Vertical Cylinder in the First Octant</p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>], Exercise 27.</p>
        <disp-formula id="FD67">
          <mml:math>
            <mml:mrow>
              <mml:mi>x</mml:mi>
              <mml:mo>≥</mml:mo>
              <mml:mn>0</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>y</mml:mi>
              <mml:mo>≥</mml:mo>
              <mml:mn>0</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msup>
                <mml:mi>x</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>+</mml:mo>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD68">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mi>cos</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mi>sin</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mi>sin</mml:mi>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mrow>
                <mml:mi>π</mml:mi>
                <mml:mo>/</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>The floor is a quarter of the unit disk. The roof is part of the plane <italic>z</italic> = <italic>y</italic>; at <italic>y</italic> = 0, it shares an edge with the floor.</p>
        <p>Integral check:</p>
        <disp-formula id="FD69">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mn>0</mml:mn>
                    <mml:mrow>
                      <mml:mn>2</mml:mn>
                      <mml:mi>π</mml:mi>
                    </mml:mrow>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mn>0</mml:mn>
                          <mml:mn>1</mml:mn>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:msup>
                            <mml:mi>s</mml:mi>
                            <mml:mn>2</mml:mn>
                          </mml:msup>
                          <mml:mi>sin</mml:mi>
                          <mml:mi>t</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>s</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>t</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>1</mml:mn>
                <mml:mn>3</mml:mn>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(s*cos(t), s*sin(t), 0, s, 0, 1, t, 0, π/2)</p>
        <p>roofPatch = Surface(s*cos(t), s*sin(t), s*sin(t), s, 0, 1, t, 0, π/2)</p>
        <p>wallCylinder = Surface(cos(t), sin(t), q*sin(t), t, 0, π/2, q, 0, 1)</p>
        <p>wallXZero = Surface(0, t, q*t, t, 0, 1, q, 0, 1)</p>
        <p>lowerArc = Curve(cos(t), sin(t), 0, t, 0, π/2)</p>
        <p>upperArc = Curve(cos(t), sin(t), sin(t), t, 0, π/2)</p>
        <p>lowerXZero = Curve(0, t, 0, t, 0, 1)</p>
        <p>upperXZero = Curve(0, t, t, t, 0, 1)</p>
        <p>sharedYAxisZero = Curve(t, 0, 0, t, 0, 1)</p>
        <p>edgeAtZeroOne = Curve(0, 1, q, q, 0, 1)</p>
        <p>C.10. E13: Parabolic Cylinder and Inclined Plane</p>
        <p>Source: [<xref ref-type="bibr" rid="B12">12</xref>]. The defining surfaces are <italic>x</italic> = <italic>y</italic><sup>2</sup>, <italic>z</italic> = 0, and <italic>x</italic> + <italic>z</italic> = 1.</p>
        <disp-formula id="FD70">
          <mml:math>
            <mml:mrow>
              <mml:mo>−</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>−</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD71">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:msup>
                <mml:mi>t</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>+</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:msup>
                    <mml:mi>t</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>s</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:msup>
                    <mml:mi>t</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mo>−</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Both signs of <italic>y</italic> are retained. The boundary consists of a floor, a roof, and one parabolic wall. At <italic>x</italic> = 1, the floor and roof share an edge along <italic>z</italic> = 0.</p>
        <p>Integral check:</p>
        <disp-formula id="FD72">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mrow>
                      <mml:mo>−</mml:mo>
                      <mml:mn>1</mml:mn>
                    </mml:mrow>
                    <mml:mn>1</mml:mn>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mrow>
                            <mml:msup>
                              <mml:mi>y</mml:mi>
                              <mml:mn>2</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                          <mml:mn>1</mml:mn>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:mn>1</mml:mn>
                              <mml:mo>−</mml:mo>
                              <mml:mi>x</mml:mi>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mfrac>
                <mml:mn>8</mml:mn>
                <mml:mrow>
                  <mml:mn>15</mml:mn>
                </mml:mrow>
              </mml:mfrac>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(t^2+s*(1−t^2), t, 0, s, 0, 1, t, −1, 1)</p>
        <p>roofPatch = Surface(t^2+s*(1−t^2), t, (1−s)*(1−t^2), s, 0, 1, t, −1, 1)</p>
        <p>wallParabolic = Surface(t^2, t, q*(1−t^2), t, −1, 1, q, 0, 1)</p>
        <p>lowerParabola = Curve(t^2, t, 0, t, −1, 1)</p>
        <p>upperParabola = Curve(t^2, t, 1−t^2, t, −1, 1)</p>
        <p>sharedEdge = Curve(1, t, 0, t, −1, 1)</p>
        <p>C.11. E14: Two Parabolic Cylinders and Constant Heights</p>
        <p>Source: [<xref ref-type="bibr" rid="B13">13</xref>], Section 14.7, p. 782, Exercise 21.</p>
        <p>Intersecting the two parabolic cylinders gives <italic>y</italic><sup>2</sup> = 4 − <italic>y</italic><sup>2</sup>, hence <italic>y</italic> = <inline-formula><mml:math display="inline"><mml:mrow><mml:mo> ± </mml:mo><mml:msqrt><mml:mn> 2 </mml:mn></mml:msqrt></mml:mrow></mml:math></inline-formula> and <italic>x</italic> = 2. Therefore, the admissible <italic>y</italic>-interval is from the negative square root of two to the positive square root of two. The same interval is used for the base parameter t and for the outer integral below; it is not [−2, 2].</p>
        <disp-formula id="FD73">
          <mml:math>
            <mml:mrow>
              <mml:mo>−</mml:mo>
              <mml:msqrt>
                <mml:mn>2</mml:mn>
              </mml:msqrt>
              <mml:mo>≤</mml:mo>
              <mml:mi>y</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:msqrt>
                <mml:mn>2</mml:mn>
              </mml:msqrt>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>≤</mml:mo>
              <mml:mi>x</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>4</mml:mn>
              <mml:mo>−</mml:mo>
              <mml:msup>
                <mml:mi>y</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>z</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>3.</mml:mn>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Base parameterization and height:</p>
        <disp-formula id="FD74">
          <mml:math>
            <mml:mrow>
              <mml:mi>X</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:msup>
                <mml:mi>t</mml:mi>
                <mml:mn>2</mml:mn>
              </mml:msup>
              <mml:mo>+</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>4</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mn>2</mml:mn>
                  <mml:msup>
                    <mml:mi>t</mml:mi>
                    <mml:mn>2</mml:mn>
                  </mml:msup>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>Y</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mi>H</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mn>3</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mn>0</mml:mn>
              <mml:mo>≤</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:mn>1</mml:mn>
              <mml:mo>,</mml:mo>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mo>−</mml:mo>
              <mml:msqrt>
                <mml:mn>2</mml:mn>
              </mml:msqrt>
              <mml:mo>≤</mml:mo>
              <mml:mi>t</mml:mi>
              <mml:mo>≤</mml:mo>
              <mml:msqrt>
                <mml:mn>2</mml:mn>
              </mml:msqrt>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Range check. The transverse width is 4 − 2<italic>t</italic><sup>2</sup>, which is nonnegative exactly when <inline-formula><mml:math display="inline"><mml:mrow><mml:mrow><mml:mo> | </mml:mo><mml:mi> t </mml:mi><mml:mo> | </mml:mo></mml:mrow><mml:mo> ≤ </mml:mo><mml:msqrt><mml:mn> 2 </mml:mn></mml:msqrt></mml:mrow></mml:math></inline-formula> and vanishes only at the two endpoints. Since <italic>Y</italic> = <italic>t</italic>, the domain bounds, parameter bounds, and integration limits agree. The supplied E14 file already uses −sqrt(2) and sqrt(2) in its commands and is distributed unchanged.</p>
        <p>The floor and roof are planar and remain three units apart. At <italic>t</italic> = <inline-formula><mml:math display="inline"><mml:mrow><mml:mo> ± </mml:mo><mml:msqrt><mml:mn> 2 </mml:mn></mml:msqrt></mml:mrow></mml:math></inline-formula> , each base segment collapses to (2, <inline-formula><mml:math display="inline"><mml:mrow><mml:mo> ± </mml:mo><mml:msqrt><mml:mn> 2 </mml:mn></mml:msqrt></mml:mrow></mml:math></inline-formula> ), but the corresponding wall join remains the vertical segment (2, <inline-formula><mml:math display="inline"><mml:mrow><mml:mo> ± </mml:mo><mml:msqrt><mml:mn> 2 </mml:mn></mml:msqrt></mml:mrow></mml:math></inline-formula> , <italic>z</italic>), 0 ≤ <italic>z</italic> ≤ 3. These are not zero-height contacts and do not generate additional endpoint walls.</p>
        <p>Integral check:</p>
        <disp-formula id="FD75">
          <mml:math>
            <mml:mrow>
              <mml:mi>V</mml:mi>
              <mml:mo>=</mml:mo>
              <mml:mstyle displaystyle="true">
                <mml:mrow>
                  <mml:msubsup>
                    <mml:mo>∫</mml:mo>
                    <mml:mrow>
                      <mml:mo>−</mml:mo>
                      <mml:msqrt>
                        <mml:mn>2</mml:mn>
                      </mml:msqrt>
                    </mml:mrow>
                    <mml:mrow>
                      <mml:msqrt>
                        <mml:mn>2</mml:mn>
                      </mml:msqrt>
                    </mml:mrow>
                  </mml:msubsup>
                  <mml:mrow>
                    <mml:mstyle displaystyle="true">
                      <mml:mrow>
                        <mml:msubsup>
                          <mml:mo>∫</mml:mo>
                          <mml:mrow>
                            <mml:msup>
                              <mml:mi>y</mml:mi>
                              <mml:mn>2</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                          <mml:mrow>
                            <mml:mn>4</mml:mn>
                            <mml:mo>−</mml:mo>
                            <mml:msup>
                              <mml:mi>y</mml:mi>
                              <mml:mn>2</mml:mn>
                            </mml:msup>
                          </mml:mrow>
                        </mml:msubsup>
                        <mml:mrow>
                          <mml:mn>3</mml:mn>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>x</mml:mi>
                          <mml:mtext>
                             
                          </mml:mtext>
                          <mml:mtext>d</mml:mtext>
                          <mml:mi>y</mml:mi>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mstyle>
                  </mml:mrow>
                </mml:mrow>
              </mml:mstyle>
              <mml:mo>=</mml:mo>
              <mml:mn>16</mml:mn>
              <mml:msqrt>
                <mml:mn>2</mml:mn>
              </mml:msqrt>
              <mml:mo>.</mml:mo>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>Complete geometric commands:</p>
        <p>floorPatch = Surface(t^2+s*(4−2*t^2), t, 0, s, 0, 1, t, −sqrt(2), sqrt(2))</p>
        <p>roofPatch = Surface(t^2+s*(4−2*t^2), t, 3, s, 0, 1, t, −sqrt(2), sqrt(2))</p>
        <p>wallLeft = Surface(t^2, t, 3*q, t, −sqrt(2), sqrt(2), q, 0, 1)</p>
        <p>wallRight = Surface(4−t^2, t, 3*q, t, −sqrt(2), sqrt(2), q, 0, 1)</p>
        <p>lowerLeft = Curve(t^2, t, 0, t, −sqrt(2), sqrt(2))</p>
        <p>lowerRight = Curve(4−t^2, t, 0, t, −sqrt(2), sqrt(2))</p>
        <p>upperLeft = Curve(t^2, t, 3, t, −sqrt(2), sqrt(2))</p>
        <p>upperRight = Curve(4−t^2, t, 3, t, −sqrt(2), sqrt(2))</p>
        <p>edgeNegative = Curve(2, −sqrt(2), 3*q, q, 0, 1)</p>
        <p>edgePositive = Curve(2, sqrt(2), 3*q, q, 0, 1)</p>
      </sec>
      <sec id="sec11dot4">
        <title>Appendix D. Graphical Evidence for the Extended Set</title>
        <p>The eleven images below complement the three figures in the main text. They are original screenshots supplied by Jesús Nicolás Zaragoza Grifé for the cases reported as tested. Colors, orientation, and content are preserved; size is adjusted only for layout. Dashed lines, opacity, and perspective aid interpretation, but do not determine mathematical orientation or add surfaces. Each figure documents the resulting representation and must be read alongside the equations. No details absent from the original files have been reconstructed.</p>
        <p>D.1. Zero Heights, a Circular Base, and Parabolic Cylinders</p>
        <fig id="fig4">
          <label>Figure 4</label>
          <graphic xlink:href="https://html.scirp.org/file/2314029-rId539.jpeg?20261030032444" />
        </fig>
        <p><bold>Figure A1</bold><bold>.</bold> (a) Floor and roof coincide along <italic>x</italic> = 1: their join is a segment, not a wall. (b) Two parabolic walls connect constant heights; their endpoint joins are vertical edges. (c) The first octant restricts the vertical cylinder to a quarter disk with roof <italic>z</italic> = <italic>y</italic>. The images are projections from the supplied executions; exact volumes are calculated in C.10, C.11, and C.9, respectively.</p>
        <p> D.2. Curvilinear and Triangular Bases</p>
        <fig id="fig5">
          <label>Figure 5</label>
          <graphic xlink:href="https://html.scirp.org/file/2314029-rId540.jpeg?20261030032444" />
        </fig>
        <p><bold>Figure A2</bold><bold>.</bold> Cases E04 - E07. (a) Plane over a base between <italic>y</italic> = <italic>x</italic><sup>4</sup> and <italic>y</italic> = <italic>x</italic>. (b) Surface <italic>z</italic> = 2<italic>x</italic> + <italic>y</italic><sup>2</sup> over a base between <italic>x</italic> = <italic>y</italic>³ and <italic>x</italic>= <italic>y</italic><sup>2</sup>. (c) Roof <italic>z</italic> = <italic>xy</italic> over the triangle with vertices (1, 1), (4, 1), and (1, 2). (d) Paraboloid <italic>z</italic>= <italic>x</italic><sup>2</sup> + 3<italic>y</italic><sup>2</sup> over 0 ≤ <italic>x</italic> ≤ <italic>y</italic> ≤ 1. Faces are obtained by evaluating the functions over the base, not by interpolating vertex heights. Some faces overlap in projection; complete definitions are given in C.1 - C.4.</p>
        <p> D.3. Planes, Interior Contact, and a Horizontal Cylinder</p>
        <fig id="fig6">
          <label>Figure 6</label>
          <graphic xlink:href="https://html.scirp.org/file/2314029-rId541.jpeg?20261030032444" />
        </fig>
        <p><bold>Figure A3</bold><bold>.</bold> Cases E08 - E11. (a) Tetrahedron with intercepts 2, 3, and 6. (b) Solid bounded by <italic>z</italic> = <italic>x</italic>, <italic>z</italic> = 0, <italic>y</italic> =<italic>x</italic>, and <italic>x</italic> + <italic>y</italic> = 2. (c) Two lobes under <italic>z</italic> = <italic>x</italic><sup>2</sup> touching along <italic>x</italic> = <italic>z</italic> = 0; both signs of <italic>x</italic> belong to the problem. (d) Portion of <italic>y</italic><sup>2</sup> + <italic>z</italic><sup>2</sup> = 4 in the first octant between <italic>x</italic> = 0 and <italic>x</italic> = 2<italic>y</italic>. Zero height on certain segments explains the absence of additional walls. Formulas and checks are given in C.5 - C.8.</p>
      </sec>
      <sec id="sec11dot5">
        <title>Appendix E. Case-Specific C3</title>
        <p>Apply all four invariant groups in Section 4.5 to every case. The domains, heights and parameter intervals are defined in Sections 5.1 - 5.3 and <bold>Appendix</bold><bold>C</bold>; the requirements in <bold>Table A1</bold> specify the necessary boundary roles, matching traces, excluded walls, and treatment of seams or contacts. Counts refer to positive-area geometric patches, not necessarily to top-level GeoGebra objects. A violated requirement is FAIL; an unchecked requirement is NOT_ASSESSED. These are normative replay conditions, not a record of individually observed historical results.</p>
        <p><bold>Table A1.</bold> Boundary inventory and case-specific conditions for C3. Read each row together with C3.1 - C3.4.</p>
        <table-wrap id="tbl7">
          <label>Table 7</label>
          <table>
            <tbody>
              <tr>
                <td>
                  <bold>Case</bold>
                </td>
                <td>
                  <bold>Required boundary and pass/fail invariants</bold>
                </td>
              </tr>
              <tr>
                <td>E01</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/3.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover the triangle with floor
                  <italic>z</italic>
                  = 0 and roof
                  <italic>z</italic>
                  = 1 +
                  <italic>x</italic>
                  <sup>2</sup>
                  +
                  <italic>y</italic>
                  <sup>2</sup>
                  . Include exactly the positive-area wall patches over
                  <italic>y</italic>
                  = 0,
                  <italic>x</italic>
                  +
                  <italic>y</italic>
                  = 1 and
                  <italic>x</italic>
                  = 0.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  Each wall bottom equals its floor trace and each wall top equals the roof trace. The vertical joins over (0, 0), (1, 0), (0, 1) have lengths 1, 2, 2.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No additional wall is generated from the collapsed square edge
                  <italic>s</italic>
                  = 1; no interpolating plane replaces the roof.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  The parameter edge
                  <italic>s</italic>
                  = 1 maps to (1, 0). The two lifted edges are points and the adjacent walls meet along the existing vertical edge there. There is no zero-height contact.
                </td>
              </tr>
              <tr>
                <td>E02</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  4/4/6.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover the L-shaped base by
                  <italic>ABD</italic>
                  ,
                  <italic>ADF</italic>
                  ,
                  <italic>BCD</italic>
                  ,
                  <italic>DEF</italic>
                  with disjoint interiors; preserve the missing upper-right part of the unit square. Include four floor patches, four roof patches and six contour walls.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  Floor and roof traces agree on
                  <italic>AD</italic>
                  ,
                  <italic>BD</italic>
                  and
                  <italic>DF</italic>
                  . Wall traces match the floor and roof on
                  <italic>AB</italic>
                  ,
                  <italic>BC</italic>
                  ,
                  <italic>CD</italic>
                  ,
                  <italic>DE</italic>
                  ,
                  <italic>EF</italic>
                  and
                  <italic>FA</italic>
                  ; vertical joints over
                  <italic>B</italic>
                  ,
                  <italic>C</italic>
                  ,
                  <italic>D</italic>
                  ,
                  <italic>E</italic>
                  and
                  <italic>F</italic>
                  have heights 1, 5/4, 1/2, 5/4 and 1.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No wall over interior diagonals
                  <italic>AD</italic>
                  ,
                  <italic>BD</italic>
                  or
                  <italic>DF</italic>
                  ; auxiliary lists, duplicate curve displays, points and sliders are not additional boundary faces.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  At
                  <italic>A</italic>
                  = (0, 0), roof and floor meet at one point: no positive-length vertical edge. The reentrant corner
                  <italic>D</italic>
                  remains part of the contour.
                </td>
              </tr>
              <tr>
                <td>E03</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/2.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover the full annulus, not a disk. Retain both circular boundary components and their inner and outer walls; floor
                  <italic>r</italic>
                  <sup>2</sup>
                  /4 and roof 3 −
                  <italic>r</italic>
                  <sup>2</sup>
                  /4.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  At
                  <italic>r</italic>
                  = 1, the wall endpoints are
                  <italic>z</italic>
                  = 1/4 and 11/4; at
                  <italic>r</italic>
                  = 2, they are
                  <italic>z</italic>
                  = 1 and 2. Match all four circular traces.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No wall on
                  <italic>t</italic>
                  = 0 or
                  <italic>t</italic>
                  = 2*π and no cap across the hole. The inner-wall outward normal points toward the axis when flux is checked.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  For every r in [1, 2], traces at
                  <italic>t</italic>
                  = 0 and 2*π are identical. Heights are strictly separated; the angular seam is not a physical radial face.
                </td>
              </tr>
              <tr>
                <td>E04</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/2.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover the region between
                  <italic>y</italic>
                  =
                  <italic>x</italic>
                  <sup>4</sup>
                  and
                  <italic>y</italic>
                  =
                  <italic>x</italic>
                  on [0, 1]. Include floor, plane roof, and walls only over those two arcs.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  For each arc, lower
                  <italic>z</italic>
                  = 0 and upper
                  <italic>z</italic>
                  =
                  <italic>x</italic>
                  + 2*
                  <italic>y</italic>
                  agree with the corresponding wall endpoints; the two walls share (1, 1,
                  <italic>z</italic>
                  ), 0 ≤
                  <italic>z</italic>
                  ≤ 3.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No additional face at
                  <italic>x</italic>
                  = 0 or
                  <italic>x</italic>
                  = 1: the transverse intervals collapse there.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  At
                  <italic>t</italic>
                  = 0 the base width and height both vanish, giving only the origin. At
                  <italic>t</italic>
                  = 1 the width vanishes but height is 3, giving a vertical edge.
                </td>
              </tr>
              <tr>
                <td>E05</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/2.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover
                  <italic>y</italic>
                  ³ ≤
                  <italic>x</italic>
                  ≤
                  <italic>y</italic>
                  <sup>2</sup>
                  for 0 ≤
                  <italic>y</italic>
                  ≤ 1. Include floor, curved roof, and one wall on each defining arc.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  The wall top traces are
                  <italic>z</italic>
                  = 2*
                  <italic>t</italic>
                  ³ +
                  <italic>t</italic>
                  <sup>2</sup>
                  and
                  <italic>z</italic>
                  = 3*
                  <italic>t</italic>
                  <sup>2</sup>
                  ; both have
                  <italic>z</italic>
                  = 0 at
                  <italic>t</italic>
                  = 0 and
                  <italic>z</italic>
                  = 3 at t = 1.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No walls on the collapsed endpoint sets
                  <italic>y</italic>
                  = 0 or
                  <italic>y</italic>
                  = 1; do not reverse the lower and upper
                  <italic>x</italic>
                  -bounds.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  The origin is a zero-height point. At (1, 1), retain the single shared vertical edge 0 ≤
                  <italic>z</italic>
                  ≤ 3.
                </td>
              </tr>
              <tr>
                <td>E06</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/3.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover the triangle (1, 1), (4, 1), (1, 2) with graphs
                  <italic>z</italic>
                  = 0 and
                  <italic>z</italic>
                  =
                  <italic>x</italic>
                  *
                  <italic>y</italic>
                  and walls on
                  <italic>y</italic>
                  = 1,
                  <italic>x</italic>
                  = 1 and
                  <italic>x</italic>
                  + 3*
                  <italic>y</italic>
                  = 7.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  Match six graph traces and three vertical joins; vertex heights are 1, 4 and 2. At (2, 3/2), the roof height is exactly 3, not 5/2.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No extra wall at the collapsed square edge; no planar interpolant through vertex heights.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  Heights are positive throughout the closed base; the parameter collapse yields the existing vertical edge over (4, 1), not a new face.
                </td>
              </tr>
              <tr>
                <td>E07</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/3.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover 0 ≤
                  <italic>x</italic>
                  ≤
                  <italic>y</italic>
                  ≤ 1. Keep all three walls on
                  <italic>x</italic>
                  = 0,
                  <italic>y</italic>
                  = 1 and
                  <italic>y</italic>
                  =
                  <italic>x</italic>
                  ; each has positive area despite contact at the origin.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  Wall tops are 3*
                  <italic>t</italic>
                  <sup>2</sup>
                  on
                  <italic>x</italic>
                  = 0,
                  <italic>t</italic>
                  <sup>2</sup>
                  + 3 on
                  <italic>y</italic>
                  = 1, and 4*
                  <italic>t</italic>
                  <sup>2</sup>
                  on
                  <italic>y</italic>
                  =
                  <italic>x</italic>
                  ; match their graph traces. Nonzero vertical joints have lengths 3 and 4.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  Do not delete the walls adjacent to the origin merely because their heights vanish at that endpoint; no fourth wall at the collapsed parameter edge.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  Only (0, 0, 0) is a zero-height contact. The parameter set
                  <italic>t</italic>
                  = 0 collapses to that point; no vertical edge remains there.
                </td>
              </tr>
              <tr>
                <td>E08</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/2.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover the triangular base with intercepts (2, 0), (0, 3). Include floor, roof and walls only on
                  <italic>x</italic>
                  = 0 and
                  <italic>y</italic>
                  = 0.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  All six tetrahedral edges join exactly; the vertical edge over the origin has height 6. On 3*
                  <italic>x</italic>
                  + 2*
                  <italic>y</italic>
                  = 6, both graphs have
                  <italic>z</italic>
                  = 0.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No wall over 3*
                  <italic>x</italic>
                  + 2*
                  <italic>y</italic>
                  = 6; it contributes the shared floor-roof edge, not a face.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  The whole oblique base edge is a zero-height contact; its endpoints are point contacts. No positive-length vertical joints occur there.
                </td>
              </tr>
              <tr>
                <td>E09</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/2.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Use 0 ≤
                  <italic>x</italic>
                  ≤ 1 and
                  <italic>x</italic>
                  ≤
                  <italic>y</italic>
                  ≤ 2 −
                  <italic>x</italic>
                  . Include the two graphs and walls only on
                  <italic>y</italic>
                  =
                  <italic>x</italic>
                  and
                  <italic>x</italic>
                  +
                  <italic>y</italic>
                  = 2.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  Wall traces match
                  <italic>z</italic>
                  = 0 and
                  <italic>z</italic>
                  =
                  <italic>x</italic>
                  ; they share the vertical segment (1, 1,
                  <italic>z</italic>
                  ), 0 ≤
                  <italic>z</italic>
                  ≤ 1. On
                  <italic>x</italic>
                  = 0, both graphs equal (0,
                  <italic>y</italic>
                  , 0), 0 ≤
                  <italic>y</italic>
                  ≤ 2.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No wall in
                  <italic>x</italic>
                  = 0; nonnegativity of the roof determines this boundary, but its height is zero.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  The
                  <italic>x</italic>
                  = 0 segment is a zero-height contact; the collapse at
                  <italic>x</italic>
                  = 1 retains the vertical edge of height 1.
                </td>
              </tr>
              <tr>
                <td>E10</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  2/2/4.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover both
                  <italic>x</italic>
                  ≤ 0 and
                  <italic>x</italic>
                  ≥ 0 halves. Each has floor, roof, a wall on
                  <italic>y</italic>
                  =
                  <italic>x</italic>
                  <sup>2</sup>
                  , and a wall on
                  <italic>y</italic>
                  = 4: eight geometric patches in total.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  The two subregions meet only on (0,
                  <italic>y</italic>
                  , 0), 0 ≤
                  <italic>y</italic>
                  ≤ 4. Match all contour traces and the vertical joins (±2, 4,
                  <italic>z</italic>
                  ), 0 ≤
                  <italic>z</italic>
                  ≤ 4.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No positive-area partition wall at
                  <italic>x</italic>
                  = 0 and no first-octant restriction. Neither lobe may be omitted.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  The interior contact line has zero height. Apply the strict-interior-height assumption separately to each half; each has volume 64/15.
                </td>
              </tr>
              <tr>
                <td>E11</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/2.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Use the first-octant branch
                  <italic>y</italic>
                  <sup>2</sup>
                  +
                  <italic>z</italic>
                  <sup>2</sup>
                  = 4 with floor
                  <italic>z</italic>
                  = 0 and walls on
                  <italic>x</italic>
                  = 0 and x = 2*y. Cover the full triangular projection.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  Match quarter-circle and oblique roof traces to their wall tops. At
                  <italic>y</italic>
                  = 2, floor and roof share (
                  <italic>x</italic>
                  , 2, 0), 0 ≤
                  <italic>x</italic>
                  ≤ 4; at
                  <italic>y</italic>
                  = 0 the walls share (0, 0,
                  <italic>z</italic>
                  ), 0 ≤
                  <italic>z</italic>
                  ≤ 2.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No wall on
                  <italic>y</italic>
                  = 2 and no negative-
                  <italic>y</italic>
                  or negative-
                  <italic>z</italic>
                  branch. Do not orient the cylinder axis along
                  <italic>z</italic>
                  .
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  <italic>t</italic>
                  = π/2 gives a zero-height segment;
                  <italic>t</italic>
                  = 0 collapses the base to the origin but retains a vertical edge of height 2. Both angular endpoints are physical, not a periodic seam.
                </td>
              </tr>
              <tr>
                <td>E12</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/2.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover only the first-quadrant quarter disk. Include the floor, plane roof, wall on
                  <italic>x</italic>
                  = 0 and wall on
                  <italic>x</italic>
                  <sup>2</sup>
                  +
                  <italic>y</italic>
                  <sup>2</sup>
                  = 1.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  Match the two circular graph traces and the traces on
                  <italic>x</italic>
                  = 0; retain (0, 1,
                  <italic>z</italic>
                  ), 0 ≤
                  <italic>z</italic>
                  ≤ 1. Floor and roof share (
                  <italic>x</italic>
                  , 0, 0), 0 ≤
                  <italic>x</italic>
                  ≤ 1.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No wall on
                  <italic>y</italic>
                  = 0 and no full-cylinder extension. The
                  <italic>x</italic>
                  = 0 angular boundary is a real wall, unlike the seam of E03.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  <italic>s</italic>
                  = 0 collapses to the zero-height origin.
                  <italic>t</italic>
                  = 0 is a zero-height radial edge;
                  <italic>t</italic>
                  = π/2 is a positive-area wall.
                </td>
              </tr>
              <tr>
                <td>E13</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/1.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Cover
                  <italic>y</italic>
                  <sup>2</sup>
                  ≤
                  <italic>x</italic>
                  ≤ 1 for −1 ≤
                  <italic>y</italic>
                  ≤ 1, including both signs of
                  <italic>y</italic>
                  . Include only floor, roof and the wall on
                  <italic>x</italic>
                  =
                  <italic>y</italic>
                  <sup>2</sup>
                  .
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  The parabolic wall matches (
                  <italic>t</italic>
                  <sup>2</sup>
                  ,
                  <italic>t</italic>
                  , 0) and (
                  <italic>t</italic>
                  <sup>2</sup>
                  ,
                  <italic>t</italic>
                  , 1 −
                  <italic>t</italic>
                  <sup>2</sup>
                  ). Floor and roof meet on (1, t, 0), −1 ≤
                  <italic>t</italic>
                  ≤ 1.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No wall on
                  <italic>x</italic>
                  = 1 and no walls at
                  <italic>y</italic>
                  = ±1. Do not restrict the case to the first octant.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  The whole
                  <italic>x</italic>
                  = 1 edge has zero height; the endpoint base collapses at
                  <italic>t</italic>
                  = ±1 are points, not vertical edges.
                </td>
              </tr>
              <tr>
                <td>E14</td>
                <td>
                  <bold>Floor/roof/wall patches:</bold>
                  1/1/2.
                  <bold>C3.1</bold>
                  <bold>—</bold>
                  Use exactly
                  <inline-formula>
                    <mml:math display="inline">
                      <mml:mrow>
                        <mml:mo>−</mml:mo>
                        <mml:msqrt>
                          <mml:mn>2</mml:mn>
                        </mml:msqrt>
                        <mml:mo>≤</mml:mo>
                        <mml:mi>y</mml:mi>
                        <mml:mo>≤</mml:mo>
                        <mml:msqrt>
                          <mml:mn>2</mml:mn>
                        </mml:msqrt>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                  ,
                  <inline-formula>
                    <mml:math display="inline">
                      <mml:mrow>
                        <mml:msup>
                          <mml:mi>y</mml:mi>
                          <mml:mn>2</mml:mn>
                        </mml:msup>
                        <mml:mo>≤</mml:mo>
                        <mml:mi>x</mml:mi>
                        <mml:mo>≤</mml:mo>
                        <mml:mn>4</mml:mn>
                        <mml:mo>−</mml:mo>
                        <mml:msup>
                          <mml:mi>y</mml:mi>
                          <mml:mn>2</mml:mn>
                        </mml:msup>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                  and
                  <inline-formula>
                    <mml:math display="inline">
                      <mml:mrow>
                        <mml:mn>0</mml:mn>
                        <mml:mo>≤</mml:mo>
                        <mml:mi>z</mml:mi>
                        <mml:mo>≤</mml:mo>
                        <mml:mn>3</mml:mn>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                  . Include both plane graphs and both parabolic walls.
                  <bold>C3.2</bold>
                  <bold>—</bold>
                  Match all four parabolic graph traces. The walls meet at (2,
                  <inline-formula>
                    <mml:math display="inline">
                      <mml:mrow>
                        <mml:mo>±</mml:mo>
                        <mml:msqrt>
                          <mml:mn>2</mml:mn>
                        </mml:msqrt>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                  ,
                  <italic>z</italic>
                  ),
                  <inline-formula>
                    <mml:math display="inline">
                      <mml:mrow>
                        <mml:mn>0</mml:mn>
                        <mml:mo>≤</mml:mo>
                        <mml:mi>z</mml:mi>
                        <mml:mo>≤</mml:mo>
                        <mml:mn>3</mml:mn>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                  , giving two distinct vertical edges.
                  <bold>C3.3</bold>
                  <bold>—</bold>
                  No extra wall at either endpoint and no interval [−2, 2] for
                  <italic>t</italic>
                  or the iterated integral. No first-octant restriction.
                  <bold>C3.4</bold>
                  <bold>—</bold>
                  The base width 4 − 2*
                  <italic>t</italic>
                  <sup>2</sup>
                  vanishes at
                  <inline-formula>
                    <mml:math display="inline">
                      <mml:mrow>
                        <mml:mi>t</mml:mi>
                        <mml:mo>=</mml:mo>
                        <mml:mo>±</mml:mo>
                        <mml:msqrt>
                          <mml:mn>2</mml:mn>
                        </mml:msqrt>
                      </mml:mrow>
                    </mml:math>
                  </inline-formula>
                  , but the height remains 3. These are vertical joins, not zero-height contacts.
                </td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>For a new replay, record the four C3 outcomes and their evidence separately before assigning the overall C3 outcome. The supplementary prospective log is intentionally unfilled. For E02, use the native-object map in <bold>Appendix</bold>: a - d are roofs, Piso contains floor patches, and Paredes contains contour walls. Optional explicit edge objects in A.2 and helper displays in the native file do not change the underlying boundary. The preservation checks performed when packaging <bold>Appendix</bold> establish file identity and XML integrity only, not interactive execution or the provenance of earlier tests.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <title>References</title>
      <ref id="B1">
        <label>1.</label>
        <citation-alternatives>
          <mixed-citation publication-type="web">Strang, G. and Herman, E.J. (2016) Calculus Volume 3. OpenStax, Rice University. Sections 5.2, 5.4, 5.7, 6.6 and 6.8. https://openstax.org/books/calculus-volume-3/pages/1-introduction</mixed-citation>
          <element-citation publication-type="web">
            <person-group person-group-type="author">
              <string-name>Strang, G.</string-name>
              <string-name>Herman, E.J.</string-name>
              <string-name>OpenStax, R</string-name>
            </person-group>
            <year>2016</year>
            <article-title>Calculus Volume 3</article-title>
            <source>OpenStax</source>
            <volume>5</volume>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B2">
        <label>2.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Duval, R. (2006) A Cognitive Analysis of Problems of Comprehension in a Learning of Mathematics. <italic>Educational Studies in Mathematics</italic>, 61, 103-131. https://doi.org/10.1007/s10649-006-0400-z <pub-id pub-id-type="doi">10.1007/s10649-006-0400-z</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/s10649-006-0400-z">https://doi.org/10.1007/s10649-006-0400-z</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Duval, R.</string-name>
            </person-group>
            <year>2006</year>
            <article-title>A Cognitive Analysis of Problems of Comprehension in a Learning of Mathematics</article-title>
            <source>Educational Studies in Mathematics</source>
            <volume>61</volume>
            <pub-id pub-id-type="doi">10.1007/s10649-006-0400-z</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B3">
        <label>3.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Arcavi, A. (2003) The Role of Visual Representations in the Learning of Mathematics. <italic>Educational Studies in Mathematics</italic>, 52, 215-241. https://doi.org/10.1023/a:1024312321077 <pub-id pub-id-type="doi">10.1023/a:1024312321077</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1023/a:1024312321077">https://doi.org/10.1023/a:1024312321077</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Arcavi, A.</string-name>
            </person-group>
            <year>2003</year>
            <article-title>The Role of Visual Representations in the Learning of Mathematics</article-title>
            <source>Educational Studies in Mathematics</source>
            <volume>52</volume>
            <fpage>102431</fpage>
            <pub-id pub-id-type="doi">10.1023/a:1024312321077</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B4">
        <label>4.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">de Carvalho, P.P., da Silva, A.N., da Silva, M.D.C.V. and Rodrigues, W.F.D.S. (2024) Exploring Concepts of Definite Integrals in Two Variables Using Geogebra. <italic>Discover Education</italic>, 3, Article 189. https://doi.org/10.1007/s44217-024-00290-9 <pub-id pub-id-type="doi">10.1007/s44217-024-00290-9</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/s44217-024-00290-9">https://doi.org/10.1007/s44217-024-00290-9</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Carvalho, P.P.</string-name>
              <string-name>Silva, A.N.</string-name>
              <string-name>Silva, M.D.C.V.</string-name>
              <string-name>Rodrigues, W.F.D.S.</string-name>
            </person-group>
            <year>2024</year>
            <article-title>Exploring Concepts of Definite Integrals in Two Variables Using Geogebra</article-title>
            <source>Discover Education</source>
            <volume>3</volume>
            <elocation-id>189</elocation-id>
            <pub-id pub-id-type="doi">10.1007/s44217-024-00290-9</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B5">
        <label>5.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Linares-Rodríguez, B., Montila-López, Y. and Suárez-Carreño, F. (2026) Interface for the Visualization of Solids and the Analysis of Triple Integrals. <italic>Revista</italic><italic>Mexicana</italic><italic>de</italic><italic>Física</italic><italic>E</italic>, 23, 1-12. (In Spanish) https://doi.org/10.31349/revmexfis.23.020213 <pub-id pub-id-type="doi">10.31349/revmexfis.23.020213</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.31349/revmexfis.23.020213">https://doi.org/10.31349/revmexfis.23.020213</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <year>2026</year>
            <article-title>Interface for the Visualization of Solids and the Analysis of Triple Integrals</article-title>
            <source>Revista Mexicana de Física E</source>
            <volume>23</volume>
            <pub-id pub-id-type="doi">10.31349/revmexfis.23.020213</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B6">
        <label>6.</label>
        <mixed-citation publication-type="web">GeoGebra (n.d.) Surface Command. GeoGebra Manual. https://geogebra.github.io/docs/manual/en/commands/Surface/</mixed-citation>
      </ref>
      <ref id="B7">
        <label>7.</label>
        <mixed-citation publication-type="web">GeoGebra (n.d.) Curve Command. GeoGebra Manual. https://geogebra.github.io/docs/manual/en/commands/Curve/</mixed-citation>
      </ref>
      <ref id="B8">
        <label>8.</label>
        <citation-alternatives>
          <mixed-citation publication-type="web">GeoGebra (2025) GeoGebra License. Terms Updated November 2025. https://www.geogebra.org/license</mixed-citation>
          <element-citation publication-type="web">
            <year>2025</year>
            <article-title>GeoGebra License</article-title>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B9">
        <label>9.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Duffy, M.G. (1982) Quadrature over a Pyramid or Cube of Integrands with a Singularity at a Vertex. <italic>SIAM Journal on Numerical Analysis</italic>, 19, 1260-1262. https://doi.org/10.1137/0719090 <pub-id pub-id-type="doi">10.1137/0719090</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1137/0719090">https://doi.org/10.1137/0719090</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Duffy, M.G.</string-name>
            </person-group>
            <year>1982</year>
            <article-title>Quadrature over a Pyramid or Cube of Integrands with a Singularity at a Vertex</article-title>
            <source>SIAM Journal on Numerical Analysis</source>
            <volume>19</volume>
            <pub-id pub-id-type="doi">10.1137/0719090</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B10">
        <label>10.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Mousavi, S.E. and Sukumar, N. (2010) Generalized Duffy Transformation for Integrating Vertex Singularities. <italic>Computational Mechanics</italic>, 45, 127-140. https://doi.org/10.1007/s00466-009-0424-1 <pub-id pub-id-type="doi">10.1007/s00466-009-0424-1</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/s00466-009-0424-1">https://doi.org/10.1007/s00466-009-0424-1</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Mousavi, S.E.</string-name>
              <string-name>Sukumar, N.</string-name>
            </person-group>
            <year>2010</year>
            <article-title>Generalized Duffy Transformation for Integrating Vertex Singularities</article-title>
            <source>Computational Mechanics</source>
            <volume>45</volume>
            <pub-id pub-id-type="doi">10.1007/s00466-009-0424-1</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B11">
        <label>11.</label>
        <citation-alternatives>
          <mixed-citation publication-type="book">de Berg, M., Cheong, O., van Kreveld, M. and Overmars, M. (2008) Chapter 3, Polygon Triangulation. In: <italic>Computational Geometry</italic>: <italic>Algorithms and Applications</italic>, 3rd Edition, Springer, 45-61.</mixed-citation>
          <element-citation publication-type="book">
            <person-group person-group-type="author">
              <string-name>Berg, M.</string-name>
              <string-name>Cheong, O.</string-name>
              <string-name>Kreveld, M.</string-name>
              <string-name>Overmars, M.</string-name>
              <string-name>Edition, S</string-name>
            </person-group>
            <year>2008</year>
            <article-title>Chapter 3, Polygon Triangulation</article-title>
            <source>In: Computational Geometry: Algorithms and Applications</source>
            <volume>45</volume>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B12">
        <label>12.</label>
        <citation-alternatives>
          <mixed-citation publication-type="book">Stewart, J. (2013) Cálculo. Trascendentes tempranas. 7th Edition, Cengage Learning. (In Spanish)</mixed-citation>
          <element-citation publication-type="book">
            <person-group person-group-type="author">
              <string-name>Stewart, J.</string-name>
              <string-name>Edition, C</string-name>
            </person-group>
            <year>2013</year>
            <article-title>Cálculo</article-title>
            <source>Trascendentes tempranas. 7th Edition</source>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B13">
        <label>13.</label>
        <citation-alternatives>
          <mixed-citation publication-type="book">Zill, D.G. and Wright, W.S. (2011) Cálculo: Trascendentes tempranas. 4th Edition, McGraw-Hill. (In Spanish)</mixed-citation>
          <element-citation publication-type="book">
            <person-group person-group-type="author">
              <string-name>Zill, D.G.</string-name>
              <string-name>Wright, W.S.</string-name>
              <string-name>Edition, M</string-name>
            </person-group>
            <year>2011</year>
            <article-title>Cálculo: Trascendentes tempranas</article-title>
            <source>4th Edition</source>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B14">
        <label>14.</label>
        <mixed-citation publication-type="web">GeoGebra (n.d.) Segment Command. GeoGebra Manual. https://geogebra.github.io/docs/manual/en/commands/Segment/</mixed-citation>
      </ref>
      <ref id="B15">
        <label>15.</label>
        <mixed-citation publication-type="web">GeoGebra (n.d.) SetFilling Command. GeoGebra Manual. https://geogebra.github.io/docs/manual/en/commands/SetFilling/</mixed-citation>
      </ref>
      <ref id="B16">
        <label>16.</label>
        <mixed-citation publication-type="web">GeoGebra (n.d.) SetVisibleInView Command. GeoGebra Manual. https://geogebra.github.io/docs/manual/en/commands/SetVisibleInView/</mixed-citation>
      </ref>
      <ref id="B17">
        <label>17.</label>
        <mixed-citation publication-type="web">GeoGebra (n.d.) ExportImage Command. GeoGebra Manual. https://geogebra.github.io/docs/manual/en/commands/ExportImage/</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>