<!-- canonical: efficientnewlanguage.org/ai/examples/983-the-rising-moon-was-the-farther-one | ai_layer_version: 0.1.0 | updated: 2026-09-23 -->

# Example 983 — The rising moon was the farther one

`the_rising_moon_was_the_farther_one.eml` - An observer sees the full Moon rise huge over the rooftops and, hours later, small and high overhead, and concludes that the rising Moon is the bigger one. How far away the Moon is in each position, and how wide it really is on the sky, is computed below.

## EML

```eml
# Self-authored for the EML case corpus (no external origin). An observer sees
# the full Moon rise huge over the rooftops and, hours later, small and high
# overhead, and concludes that the rising Moon is the bigger one. How far away
# the Moon is in each position, and how wide it really is on the sky, is
# computed below.
#
# The reasoning is careful. The same Moon was compared on the same night with
# the same eyes; the difference is seen by everyone, every month; and the intent
# is exactly 'which Moon is bigger'.
#
# The observer stands on the Earth's surface, 6371 km from its centre. With the
# Moon overhead the observer is that much closer to it; with the Moon rising it
# is off to the side, at nearly the full centre-to-centre distance. The overhead
# Moon is 378029 km away and the rising one 384347 km, so the overhead disc is
# the wider one, by 31 arcseconds. The bigness of the rising Moon is made in the
# eye.

384400 => earth_to_moon_centre_km
6371 => earth_radius_km
384347 => distance_to_the_rising_moon_km
3474 => moon_diameter_km
206265 => arcseconds_per_radian

earth_to_moon_centre_km - earth_radius_km => distance_to_the_overhead_moon_km
earth_to_moon_centre_km * earth_to_moon_centre_km - earth_radius_km * earth_radius_km => rising_distance_squared
rising_distance_squared - distance_to_the_rising_moon_km * distance_to_the_rising_moon_km => its_square_falls_short_by
(distance_to_the_rising_moon_km + 1) * (distance_to_the_rising_moon_km + 1) - rising_distance_squared => one_km_more_overshoots_by
distance_to_the_rising_moon_km - distance_to_the_overhead_moon_km => observer_closer_overhead_by_km
int(arcseconds_per_radian * moon_diameter_km / distance_to_the_rising_moon_km) => rising_moon_width_arcsec
int(arcseconds_per_radian * moon_diameter_km / distance_to_the_overhead_moon_km) => overhead_moon_width_arcsec
overhead_moon_width_arcsec - rising_moon_width_arcsec => overhead_moon_wider_by_arcsec
int(distance_to_the_rising_moon_km * 10000 / distance_to_the_overhead_moon_km) => overhead_width_vs_rising_per_myriad

"earth to moon, centre to centre : " + str(earth_to_moon_centre_km) + " km" ^0
"observer's distance from centre : " + str(earth_radius_km) + " km" ^0
"" ^0
"moon overhead                   : " + str(distance_to_the_overhead_moon_km) + " km away" ^0
"moon rising                     : " + str(distance_to_the_rising_moon_km) + " km away; its square falls " + str(its_square_falls_short_by) + " short" ^0
"                                  of the right triangle's, one km more overshoots by " + str(one_km_more_overshoots_by) ^0
"observer closer, moon overhead  : " + str(observer_closer_overhead_by_km) + " km" ^0
"" ^0
"rising moon's width             : " + str(rising_moon_width_arcsec) + " arcseconds" ^0
"overhead moon's width           : " + str(overhead_moon_width_arcsec) + " arcseconds" ^0
"overhead moon wider by          : " + str(overhead_moon_wider_by_arcsec) + " arcseconds, " + str(overhead_width_vs_rising_per_myriad) + " per ten thousand of the rising one" ^0
"" ^0

# ---- what the observer verified ----

"the bigger-at-the-horizon reasoning" ^0
"  moon : the same one, the same night" ^0
"  eyes : the same, compared carefully" ^0
"  the effect : seen by everyone, every month" ^0
"  intent : which moon is bigger" ^0
"  facts wrong : 0" ^0
"  verdict : THE RISING MOON IS BIGGER" ^0
"" ^0
"  comparing the same moon with the same eyes is the part done" ^0
"  right here, and it is why the impression is real: the eye" ^0
"  genuinely reports the rising moon as larger" ^0
"" ^0

# ---- how far the moon is in each position ----

"where the observer stands" ^0
"  overhead : the observer is on the line between the earth's centre" ^0
"    and the moon, " + str(earth_radius_km) + " km of it, so the moon is " + str(distance_to_the_overhead_moon_km) + " km away" ^0
"  rising : the moon is off to the side, the line to it grazes the" ^0
"    ground, and the distance is the long side of a right triangle," ^0
"    " + str(distance_to_the_rising_moon_km) + " km" ^0
"  what distance does to width : the moon's " + str(moon_diameter_km) + " km look narrower" ^0
"    the farther they are, " + str(rising_moon_width_arcsec) + " against " + str(overhead_moon_width_arcsec) + " arcseconds" ^0
"  where the bigness comes from : the eye, which judges a moon" ^0
"    beside rooftops against the rooftops, and a moon in an empty" ^0
"    sky against nothing" ^0
"" ^0

# ---- what the observer got ----

"the comparison" ^0
"  believed : the rising moon is the bigger one" ^0
"  actual : it is " + str(observer_closer_overhead_by_km) + " km farther away and " + str(overhead_moon_wider_by_arcsec) + " arcseconds narrower" ^0
"  is the impression false : no; everyone has it" ^0
"  is the impression a measurement : no; the camera, which has no" ^0
"    rooftops to compare against, finds the opposite" ^0
"" ^0

# ---- null control ----

# The same two moons measured on a photograph instead of compared by eye.
1864 => nc_rising_moon_width_on_the_photograph_arcsec
1895 => nc_overhead_moon_width_on_the_photograph_arcsec
31 => nc_arcsec_the_photograph_gives_the_overhead_moon

"null control - measure both discs on a photograph" ^0
"  rising moon's width on the photograph : " + str(nc_rising_moon_width_on_the_photograph_arcsec) + " arcseconds" ^0
"  overhead moon's width on the photograph : " + str(nc_overhead_moon_width_on_the_photograph_arcsec) + " arcseconds" ^0
"  arcseconds the photograph gives the overhead moon : " + str(nc_arcsec_the_photograph_gives_the_overhead_moon) ^0
"  no moon and no night changed; the width was measured by an" ^0
"  instrument that does not see the rooftops" ^0
"" ^0

# ---- the rule ----

"what the eye's comparison guarantees" ^0
"  the rising moon looks bigger : exactly, to everyone, every month" ^0
"  the rising moon is bigger on the sky : not addressed; it is" ^0
"    " + str(distance_to_the_rising_moon_km) + " km away against " + str(distance_to_the_overhead_moon_km) + " overhead, and measured it" ^0
"    is " + str(rising_moon_width_arcsec) + " arcseconds wide to the overhead moon's " + str(overhead_moon_width_arcsec) ^0
"" ^0

"an impression shared by everyone is a fact about eyes, not about the thing" ^0
"they look at; the moon is never nearer than when it is high and alone, and" ^0
"never looks smaller" ^0
"" ^0

"The rising moon looks bigger - to everyone, every month. But the observer" ^0
"stands " + str(earth_radius_km) + " km off the earth's centre: overhead the moon is " + str(distance_to_the_overhead_moon_km) + " km away and" ^0
"rising it is " + str(distance_to_the_rising_moon_km) + ", so the overhead disc is " + str(overhead_moon_width_arcsec) + " arcseconds wide to the rising" ^0
"one's " + str(rising_moon_width_arcsec) + ", until the discs are measured rather than compared by eye." ^0
```

## Python (deterministic transpilation)

```python
earth_to_moon_centre_km = 384400
earth_radius_km = 6371
distance_to_the_rising_moon_km = 384347
moon_diameter_km = 3474
arcseconds_per_radian = 206265
distance_to_the_overhead_moon_km = earth_to_moon_centre_km - earth_radius_km
rising_distance_squared = earth_to_moon_centre_km * earth_to_moon_centre_km - earth_radius_km * earth_radius_km
its_square_falls_short_by = rising_distance_squared - distance_to_the_rising_moon_km * distance_to_the_rising_moon_km
one_km_more_overshoots_by = (distance_to_the_rising_moon_km + 1) * (distance_to_the_rising_moon_km + 1) - rising_distance_squared
observer_closer_overhead_by_km = distance_to_the_rising_moon_km - distance_to_the_overhead_moon_km
rising_moon_width_arcsec = int(arcseconds_per_radian * moon_diameter_km / distance_to_the_rising_moon_km)
overhead_moon_width_arcsec = int(arcseconds_per_radian * moon_diameter_km / distance_to_the_overhead_moon_km)
overhead_moon_wider_by_arcsec = overhead_moon_width_arcsec - rising_moon_width_arcsec
overhead_width_vs_rising_per_myriad = int(distance_to_the_rising_moon_km * 10000 / distance_to_the_overhead_moon_km)
print("earth to moon, centre to centre : " + str(earth_to_moon_centre_km) + " km")
print("observer's distance from centre : " + str(earth_radius_km) + " km")
print("")
print("moon overhead                   : " + str(distance_to_the_overhead_moon_km) + " km away")
print("moon rising                     : " + str(distance_to_the_rising_moon_km) + " km away; its square falls " + str(its_square_falls_short_by) + " short")
print("                                  of the right triangle's, one km more overshoots by " + str(one_km_more_overshoots_by))
print("observer closer, moon overhead  : " + str(observer_closer_overhead_by_km) + " km")
print("")
print("rising moon's width             : " + str(rising_moon_width_arcsec) + " arcseconds")
print("overhead moon's width           : " + str(overhead_moon_width_arcsec) + " arcseconds")
print("overhead moon wider by          : " + str(overhead_moon_wider_by_arcsec) + " arcseconds, " + str(overhead_width_vs_rising_per_myriad) + " per ten thousand of the rising one")
print("")
print("the bigger-at-the-horizon reasoning")
print("  moon : the same one, the same night")
print("  eyes : the same, compared carefully")
print("  the effect : seen by everyone, every month")
print("  intent : which moon is bigger")
print("  facts wrong : 0")
print("  verdict : THE RISING MOON IS BIGGER")
print("")
print("  comparing the same moon with the same eyes is the part done")
print("  right here, and it is why the impression is real: the eye")
print("  genuinely reports the rising moon as larger")
print("")
print("where the observer stands")
print("  overhead : the observer is on the line between the earth's centre")
print("    and the moon, " + str(earth_radius_km) + " km of it, so the moon is " + str(distance_to_the_overhead_moon_km) + " km away")
print("  rising : the moon is off to the side, the line to it grazes the")
print("    ground, and the distance is the long side of a right triangle,")
print("    " + str(distance_to_the_rising_moon_km) + " km")
print("  what distance does to width : the moon's " + str(moon_diameter_km) + " km look narrower")
print("    the farther they are, " + str(rising_moon_width_arcsec) + " against " + str(overhead_moon_width_arcsec) + " arcseconds")
print("  where the bigness comes from : the eye, which judges a moon")
print("    beside rooftops against the rooftops, and a moon in an empty")
print("    sky against nothing")
print("")
print("the comparison")
print("  believed : the rising moon is the bigger one")
print("  actual : it is " + str(observer_closer_overhead_by_km) + " km farther away and " + str(overhead_moon_wider_by_arcsec) + " arcseconds narrower")
print("  is the impression false : no; everyone has it")
print("  is the impression a measurement : no; the camera, which has no")
print("    rooftops to compare against, finds the opposite")
print("")
nc_rising_moon_width_on_the_photograph_arcsec = 1864
nc_overhead_moon_width_on_the_photograph_arcsec = 1895
nc_arcsec_the_photograph_gives_the_overhead_moon = 31
print("null control - measure both discs on a photograph")
print("  rising moon's width on the photograph : " + str(nc_rising_moon_width_on_the_photograph_arcsec) + " arcseconds")
print("  overhead moon's width on the photograph : " + str(nc_overhead_moon_width_on_the_photograph_arcsec) + " arcseconds")
print("  arcseconds the photograph gives the overhead moon : " + str(nc_arcsec_the_photograph_gives_the_overhead_moon))
print("  no moon and no night changed; the width was measured by an")
print("  instrument that does not see the rooftops")
print("")
print("what the eye's comparison guarantees")
print("  the rising moon looks bigger : exactly, to everyone, every month")
print("  the rising moon is bigger on the sky : not addressed; it is")
print("    " + str(distance_to_the_rising_moon_km) + " km away against " + str(distance_to_the_overhead_moon_km) + " overhead, and measured it")
print("    is " + str(rising_moon_width_arcsec) + " arcseconds wide to the overhead moon's " + str(overhead_moon_width_arcsec))
print("")
print("an impression shared by everyone is a fact about eyes, not about the thing")
print("they look at; the moon is never nearer than when it is high and alone, and")
print("never looks smaller")
print("")
print("The rising moon looks bigger - to everyone, every month. But the observer")
print("stands " + str(earth_radius_km) + " km off the earth's centre: overhead the moon is " + str(distance_to_the_overhead_moon_km) + " km away and")
print("rising it is " + str(distance_to_the_rising_moon_km) + ", so the overhead disc is " + str(overhead_moon_width_arcsec) + " arcseconds wide to the rising")
print("one's " + str(rising_moon_width_arcsec) + ", until the discs are measured rather than compared by eye.")
```

## stdout (executed)

```text
earth to moon, centre to centre : 384400 km
observer's distance from centre : 6371 km

moon overhead                   : 378029 km away
moon rising                     : 384347 km away; its square falls 153950 short
                                  of the right triangle's, one km more overshoots by 614745
observer closer, moon overhead  : 6318 km

rising moon's width             : 1864 arcseconds
overhead moon's width           : 1895 arcseconds
overhead moon wider by          : 31 arcseconds, 10167 per ten thousand of the rising one

the bigger-at-the-horizon reasoning
  moon : the same one, the same night
  eyes : the same, compared carefully
  the effect : seen by everyone, every month
  intent : which moon is bigger
  facts wrong : 0
  verdict : THE RISING MOON IS BIGGER

  comparing the same moon with the same eyes is the part done
  right here, and it is why the impression is real: the eye
  genuinely reports the rising moon as larger

where the observer stands
  overhead : the observer is on the line between the earth's centre
    and the moon, 6371 km of it, so the moon is 378029 km away
  rising : the moon is off to the side, the line to it grazes the
    ground, and the distance is the long side of a right triangle,
    384347 km
  what distance does to width : the moon's 3474 km look narrower
    the farther they are, 1864 against 1895 arcseconds
  where the bigness comes from : the eye, which judges a moon
    beside rooftops against the rooftops, and a moon in an empty
    sky against nothing

the comparison
  believed : the rising moon is the bigger one
  actual : it is 6318 km farther away and 31 arcseconds narrower
  is the impression false : no; everyone has it
  is the impression a measurement : no; the camera, which has no
    rooftops to compare against, finds the opposite

null control - measure both discs on a photograph
  rising moon's width on the photograph : 1864 arcseconds
  overhead moon's width on the photograph : 1895 arcseconds
  arcseconds the photograph gives the overhead moon : 31
  no moon and no night changed; the width was measured by an
  instrument that does not see the rooftops

what the eye's comparison guarantees
  the rising moon looks bigger : exactly, to everyone, every month
  the rising moon is bigger on the sky : not addressed; it is
    384347 km away against 378029 overhead, and measured it
    is 1864 arcseconds wide to the overhead moon's 1895

an impression shared by everyone is a fact about eyes, not about the thing
they look at; the moon is never nearer than when it is high and alone, and
never looks smaller

The rising moon looks bigger - to everyone, every month. But the observer
stands 6371 km off the earth's centre: overhead the moon is 378029 km away and
rising it is 384347, so the overhead disc is 1895 arcseconds wide to the rising
one's 1864, until the discs are measured rather than compared by eye.
```

## Round-trip

`ok: true` — round-trip fixpoint reached (python1 == python2)

## Trace event types

eml:run:start · eml:assign · eml:output · eml:run:done
