Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
4308935
WIP: P3b language width tower collapse
Jul 31, 2026
8517fb8
P3b: lift OverflowAction homonym only; hold width tower
Jul 31, 2026
16eeeed
Fix overflow witness parse: match on bound values only
Jul 31, 2026
d29efd6
P3b cluster-1: lean width tower on std.measure.BitWidth
Jul 31, 2026
3fd54b2
Fix lean width witness: remove orphan helper fns
Jul 31, 2026
0ab553a
Fix rust_add_emit_translate test OverflowAction imports
Jul 31, 2026
27e0ae7
WIP: P3b language width tower collapse
Jul 31, 2026
fa2b115
Address review 45621: fail-closed width projection, coproduct witness
Jul 31, 2026
83b35bb
Split PR 1: lean width+signedness only; drop OverflowAction
Jul 31, 2026
6b0f80d
WIP: P3b language width tower collapse
Jul 31, 2026
0128ac7
Drop no-op java.dag hunk: restore file to main
Jul 31, 2026
aa457e7
Merge 0128ac7c04df808e0b99a5b6a719919b296a190b into d58a2b7bc220eb94f…
briansrls Jul 31, 2026
e9954b4
chore: regenerate drifted generated artifacts (ci auto-heal)
Jul 31, 2026
7fb10a1
WIP: P3b language width tower collapse
Jul 31, 2026
d080707
Regenerate std_integer.rs after Signedness lands in std.integer
Jul 31, 2026
eddc4ec
Merge remote-tracking branch 'origin/main' into session/lively-ferret…
Jul 31, 2026
3a90fdf
WIP: P3b language width tower collapse
Jul 31, 2026
9038b2d
Fix CI: qualify nat_compare in cost.dag; drop stash conflict markers
Jul 31, 2026
121fca8
Restore out-of-lane files contaminated by shared stash pop
Jul 31, 2026
66c35fa
Re-export Signed/Unsigned from v2.std.integer after Signedness lift
Jul 31, 2026
477db51
WIP: P3b language width tower collapse
Jul 31, 2026
a52f973
Qualify v2.std.nat.nat_compare in cost.dag; note std.nat fork
Jul 31, 2026
2a49b48
Merge origin/main into session/lively-ferret-290
Aug 1, 2026
a59f8a8
WIP: P3b language width tower collapse
Aug 1, 2026
dc58ff2
Bound std_integer_std_nat_fork_note for review 45763.
Aug 1, 2026
4cc930a
Add bound-on-deferral clause to std_integer_std_nat_fork_note.
Aug 1, 2026
ff76082
Merge origin/main into session/lively-ferret-290
Aug 1, 2026
3af1e48
WIP: P3b language width tower collapse
Aug 1, 2026
17f1ab6
Fix LeanFixedWidth to carry LeanAdmittedBitWidth per operator ruling.
Aug 1, 2026
682b6c1
Refuse catalog width admission instead of widening to platform word.
Aug 1, 2026
323d18e
Stop width refusal at admission; seal LeanAdmittedBitWidth.
Aug 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions dag/std/integer.dag
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ type UInt128 = Compose<UInt, MachineWidth<128>>
type Int = AbelianGroup<GroupCompletion<Nat>>
type UInt = Nat

type Signedness
= Signed
| Unsigned

data std_integer_std_nat_fork_note: String = "PR1 Signedness lift imports std.nat here, co-resolving std.nat with v2.std.nat in whole-tree compile-clean closures. Known two-std-trees fork: std.nat.Nat = CommutativeSemiring<Magnitude> with std.nat.nat_compare versus v2.std.nat.Nat = Zero|Succ with v2.std.nat.nat_compare — not consolidated in this PR. Dissolve-on: two-std-trees consolidation lands a single Nat authority and retires the parallel compare fns; until then ambiguous bare references must qualify by containment path (namespace-resolution-design section 13). Disposition: awaiting an operator dispatch decision — not deferred work; a corpus-wide std carrier consolidation cannot be self-assigned by the session that found it, so the trigger and acceptance condition above are fixed and what is missing is only the dispatch; naming a fabricated owner would assert an ownership fact that is not true. The bound on the deferral, which is what keeps it tracked rather than parked: until the trigger fires, a bare reference to a Nat operation in a closure containing both authorities is ambiguous by construction and must be qualified — no consumer may assume a bare Nat name resolves, and the two Nat types are not interchangeable at any call site even where the name matches."

type IntPlatform = Compose<Int, MachineWidth<PointerWidth>>
type UIntPlatform = Compose<UInt, MachineWidth<PointerWidth>>

Expand Down
24 changes: 24 additions & 0 deletions src/v1/stage0/src/std_integer.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Generated by v1 compiler -- do not edit.
// Source module: std.integer

use self::Signedness::*;
pub use crate::std_algebra::{AbelianGroup, GroupCompletion};
pub use crate::std_induction::int_pow_bounded;
pub use crate::std_machine_constraints::{Compose, MachineWidth, PointerWidth};
Expand Down Expand Up @@ -47,6 +48,24 @@ pub type Int = i64;

pub type UInt = i64;

#[derive(
Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, serde::Serialize, serde::Deserialize,
)]
#[serde(tag = "_variant")]
pub enum Signedness {
Signed,
Unsigned,
}

pub fn std_integer_std_nat_fork_note() -> String {
thread_local! {
static CACHED: String = {
"PR1 Signedness lift imports std.nat here, co-resolving std.nat with v2.std.nat in whole-tree compile-clean closures. Known two-std-trees fork: std.nat.Nat = CommutativeSemiring<Magnitude> with std.nat.nat_compare versus v2.std.nat.Nat = Zero|Succ with v2.std.nat.nat_compare — not consolidated in this PR. Dissolve-on: two-std-trees consolidation lands a single Nat authority and retires the parallel compare fns; until then ambiguous bare references must qualify by containment path (namespace-resolution-design section 13). Disposition: awaiting an operator dispatch decision — not deferred work; a corpus-wide std carrier consolidation cannot be self-assigned by the session that found it, so the trigger and acceptance condition above are fixed and what is missing is only the dispatch; naming a fabricated owner would assert an ownership fact that is not true. The bound on the deferral, which is what keeps it tracked rather than parked: until the trigger fires, a bare reference to a Nat operation in a closure containing both authorities is ambiguous by construction and must be qualified — no consumer may assume a bare Nat name resolves, and the two Nat types are not interchangeable at any call site even where the name matches.".to_string()
};
}
CACHED.with(|c: &String| c.clone())
}

pub type IntPlatform = crate::std_machine_constraints::Compose<
i64,
crate::std_machine_constraints::MachineWidth<PointerWidth>,
Expand All @@ -71,3 +90,8 @@ pub fn uint8_channel_inclusive_max_value_derived() -> Option<Int> {
None => None,
}
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub struct Signed;
#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub struct Unsigned;
Loading
Loading