假设我们有以下定义来表示clopen区间<a, b)
中的有界整数。
def zbound (x₁ x₂ : ℤ) :=
{ n : ℤ // x₁ ≤ n ∧ n < x₂ }
现在我想要一个从zbound x₁ x₂
到bool
的函数空间,其中包含一个证明x₁ < x₂
,以便正确表示范围。
structure bounded_f (x₁ x₂ : ℤ) :=
(map : zbound x₁ x₂ → bool)
(prf : x₁ < x₂)
问题现在如下。我希望有一个类别的更新功能,将bounded_f
视为map
并更新它以返回特定值true
的{{1}},否则,这是重要的是,将功能委托给原始x
。
bounded_f
结果函数应该有一个修改过的定义空间,即它不再在从def inject_true {x₁ x₂} (x : ℤ) (f : bounded_f x₁ x₂) :
bounded_f (min x₁ x) (max x x₂) :=
⟨λ⟨x', prf⟩, if x = x' then true else f.map ⟨x', sorry⟩, _⟩
到x₁
的有界范围内运行,而是在从x₂
到{{1}的范围内运行}}。直观地说,这只是扩展了新更新所需的范围。
遗憾的是,在min x₁ x
小于下限或大于上限的情况下,我不知道应该放什么而不是max x x₂
。我的问题是精益要我展示:
sorry
然而情况并非如此,因为我更希望扩展范围而不是原始范围。立即应用x
是否有问题,我是否需要......以某种方式修改它?