Equations
- One or more equations did not get rendered due to their size.
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.
- stx : Lean.Syntax
- structName : Lean.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 } }
Equations
- Lean.Elab.Term.StructInst.Source.isNone _fun_discr = match _fun_discr with | { explicit := #[], implicit := none } => true | x => false
- fieldName: Lean.Syntax → Lean.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
- Lean.Elab.Term.StructInst.Field.isSimple _fun_discr = match _fun_discr with | { ref := ref, lhs := [head], val := val, expr? := expr? } => true | x => false
- mk: Lean.Syntax → Lean.Name → Array (Lean.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
- Lean.Elab.Term.StructInst.Struct.ref _fun_discr = match _fun_discr with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields source => ref
Equations
- Lean.Elab.Term.StructInst.Struct.structName _fun_discr = match _fun_discr with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields source => structName
Equations
- Lean.Elab.Term.StructInst.Struct.params _fun_discr = match _fun_discr with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields source => params
Equations
- Lean.Elab.Term.StructInst.Struct.fields _fun_discr = match _fun_discr with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields source => fields
Equations
- Lean.Elab.Term.StructInst.Struct.source _fun_discr = match _fun_discr with | Lean.Elab.Term.StructInst.Struct.mk ref structName params fields s => s
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.
Equations
- Lean.Elab.Term.StructInst.instToStringStruct = { toString := toString ∘ Lean.format }
Equations
- Lean.Elab.Term.StructInst.instToStringFieldStruct = { toString := toString ∘ Lean.format }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Elab.Term.StructInst.Struct.setFields s fields = Lean.Elab.Term.StructInst.Struct.modifyFields s fun x => fields
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
- ctorFn : Lean.Expr
- ctorFnType : Lean.Expr
- instMVars : Array Lean.MVarId
Instances For
Equations
- Lean.Elab.Term.StructInst.markDefaultMissing e = Lean.mkAnnotation (Lean.Name.mkStr1 "structInstDefault") e
Equations
- Lean.Elab.Term.StructInst.defaultMissing? e = Lean.annotation? (Lean.Name.mkStr1 "structInstDefault") e
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
- val : Lean.Expr
- struct : Lean.Elab.Term.StructInst.Struct
- instMVars : Array Lean.MVarId
Instances For
- structs : Array Lean.Elab.Term.StructInst.Struct
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).
maxDistance : Nat- Keep computing default values using
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Elab.Term.StructInst.DefaultFields.allDefaultMissing struct = StateT.run' (SeqRight.seqRight (Lean.Elab.Term.StructInst.DefaultFields.allDefaultMissing.go struct) fun x => get) #[]
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
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.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.