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.