Equations
- One or more equations did not get rendered due to their size.
Instances For
Expand field abbreviations. Example: { x, y := 0 } expands to { x := x, y := 0 }
Equations
- One or more equations did not get rendered due to their size.
Instances For
- stx : Lean.Syntax
- structName : Lake.Name
Instances For
Equations
- Lean.Elab.Term.StructInst.instInhabitedExplicitSourceInfo = { default := { stx := default, structName := default } }
- implicit : Option Lean.Syntax
Instances For
Equations
- Lean.Elab.Term.StructInst.instInhabitedSource = { default := { explicit := default, implicit := default } }
Instances For
- fieldName: Lean.Syntax → Lake.Name → Lean.Elab.Term.StructInst.FieldLHS
- fieldIndex: Lean.Syntax → Nat → Lean.Elab.Term.StructInst.FieldLHS
- modifyOp: Lean.Syntax → Lean.Syntax → Lean.Elab.Term.StructInst.FieldLHS
Instances For
Equations
- Lean.Elab.Term.StructInst.instInhabitedFieldLHS = { default := Lean.Elab.Term.StructInst.FieldLHS.fieldName default default }
Equations
- One or more equations did not get rendered due to their size.
- term: {σ : Type} → Lean.Syntax → Lean.Elab.Term.StructInst.FieldVal σ
- nested: {σ : Type} → σ → Lean.Elab.Term.StructInst.FieldVal σ
- default: {σ : Type} → Lean.Elab.Term.StructInst.FieldVal σ
Instances For
Equations
- Lean.Elab.Term.StructInst.instInhabitedFieldVal = { default := Lean.Elab.Term.StructInst.FieldVal.term default }
- ref : Lean.Syntax
Instances For
Equations
- Lean.Elab.Term.StructInst.instInhabitedField = { default := { ref := default, lhs := default, val := default, expr? := default } }
Equations
Instances For
- mk: Lean.Syntax →
Lake.Name →
Array (Lake.Name × Lean.Expr) →
List (Lean.Elab.Term.StructInst.Field Lean.Elab.Term.StructInst.Struct) →
Lean.Elab.Term.StructInst.Source → Lean.Elab.Term.StructInst.Struct
Remark: the field
paramsis use for default value propagation. It is initially empty, and then set atelabStruct.
Instances For
Equations
- Lean.Elab.Term.StructInst.instInhabitedStruct = { default := Lean.Elab.Term.StructInst.Struct.mk default default default default default }
Equations
Instances For
Equations
- x.ref = match x with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields source => ref
Instances For
Equations
- x.structName = match x with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields source => structName
Instances For
Equations
- x.params = match x with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields source => params
Instances For
Equations
- x.fields = match x with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields source => fields
Instances For
Equations
- x.source = match x with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields s => s
Instances For
true iff all fields of the given structure are marked as default
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Term.StructInst.instToStringStruct = { toString := toString ∘ Std.format }
Equations
- Lean.Elab.Term.StructInst.instToStringFieldStruct = { toString := toString ∘ Std.format }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- s.modifyFields f = (s.modifyFieldsM f).run
Instances For
Equations
- s.setFields fields = s.modifyFields fun (x : Lean.Elab.Term.StructInst.Fields) => fields
Instances For
Equations
- s.setParams ps = match s with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields source => Lean.Elab.Term.StructInst.Struct.mk ref structName ps fields source
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Term.StructInst.markDefaultMissing e = Lean.mkAnnotation `structInstDefault e
Instances For
Equations
- Lean.Elab.Term.StructInst.defaultMissing? e = Lean.annotation? `structInstDefault e
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- val : Lean.Expr
- struct : Lean.Elab.Term.StructInst.Struct
- instMVars : Array Lean.MVarId
Instances For
- structs : Array Lean.Elab.Term.StructInst.Struct
- maxDistance : Nat
Consider the following example:
structure A where x : Nat := 1 structure B extends A where y : Nat := x + 1 x := y + 1 structure C extends B where z : Nat := 2*y x := z + 3And we are trying to elaborate a structure instance for
C. There are default values forxatA,B, andC. We say the default value atChas distance 0, the one atBdistance 1, and the one atAdistance 2. The fieldmaxDistancespecifies the maximum distance considered in a round of Default field computation. Remark: sinceCdoes not set a default value ofy, the default value atBis at distance 0.The fixpoint for setting default values works in the following way.
- Keep computing default values using
maxDistance == 0. - We increase
maxDistancewhenever we failed to compute a new default value in a round. - If
maxDistance > 0, then we interrupt a round as soon as we compute some default value. We use depth-first search. - We sign an error if no progress is made when
maxDistance== structure hierarchy depth (2 in the example above).
- Keep computing default values using
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Term.StructInst.DefaultFields.allDefaultMissing struct = (SeqRight.seqRight (Lean.Elab.Term.StructInst.DefaultFields.allDefaultMissing.go struct) fun (x : Unit) => get).run' #[]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reduce default value. It performs beta reduction and projections of the given structures.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.