Documentation

Aesop.Tree.Data

Node IDs #

structure Aesop.GoalId :
  • toNat : Nat
Instances For
    def Aesop.instDecidableEqGoalId.decEq (xโœ xโœยน : GoalId) :
    Decidable (xโœ = xโœยน)
    Equations
    Instances For
      Equations
      Instances For
        Equations
        Instances For
          Equations
          • { toNat := n }.succ = { toNat := n + 1 }
          Instances For
            Equations
            Instances For
              @[implicit_reducible]
              Equations
              @[implicit_reducible]
              instance Aesop.GoalId.instDecidableRelLt :
              DecidableRel fun (x1 x2 : GoalId) => x1 < x2
              Equations
              @[implicit_reducible]
              Equations
              @[implicit_reducible]
              Equations

              Rule Application IDs #

              structure Aesop.RappId :
              • toNat : Nat
              Instances For
                def Aesop.instDecidableEqRappId.decEq (xโœ xโœยน : RappId) :
                Decidable (xโœ = xโœยน)
                Equations
                Instances For
                  Equations
                  Instances For
                    Equations
                    • { toNat := n }.succ = { toNat := n + 1 }
                    Instances For
                      Equations
                      Instances For
                        Equations
                        Instances For
                          @[implicit_reducible]
                          Equations
                          @[implicit_reducible]
                          instance Aesop.RappId.instDecidableRelLt :
                          DecidableRel fun (x1 x2 : RappId) => x1 < x2
                          Equations
                          @[implicit_reducible]
                          Equations
                          @[implicit_reducible]
                          Equations

                          Iterations #

                          The Tree #

                          At each point during the search, every node of the tree (goal, rapp or mvar cluster) is in one of these states:

                          • proven: the node is proven.
                          • unprovable: the node is unprovable, i.e. it will never be proven regardless of any future expansions that might be performed.
                          • unknown: neither of the above.

                          Every node starts in the unknown state and may later become either proven or unprovable. After this, the state does not change any more.

                          Instances For
                            Equations
                            Instances For
                              @[implicit_reducible]
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Equations
                              Instances For
                                Equations
                                Instances For

                                  A refinement of the NodeState, distinguishing between goals proven during normalisation and goals proven by a child rule application.

                                  Instances For
                                    Equations
                                    Instances For
                                      @[implicit_reducible]
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Equations
                                      Instances For
                                        Instances For

                                          A goal G can be added to the tree for three reasons:

                                          1. G was produced by its parent rule as a subgoal. This is the most common reason.
                                          2. G was copied because it contains some metavariables which were assigned by its parent rule. In this case, we record goal of which G is a copy. We also record the representative of the equivalence class of goals which are copies of each other. E.g. if goal 1 is copied to goal 2 and goal 2 is copied to goal 3, they are all part of the equivalence class with representative 1.
                                          Instances For
                                            Equations
                                            Instances For
                                              Equations
                                              Instances For
                                                structure Aesop.GoalData (Rapp MVarCluster : Type) :
                                                • id : GoalId
                                                • parent : IO.Ref MVarCluster
                                                • children : Array (IO.Ref Rapp)
                                                • origin : GoalOrigin
                                                • depth : Nat
                                                • state : GoalState
                                                • isIrrelevant : Bool
                                                • isForcedUnprovable : Bool
                                                • preNormGoal : Lean.MVarId
                                                • normalizationState : NormalizationState
                                                • mvars : UnorderedArraySet Lean.MVarId
                                                • forwardState : ForwardState

                                                  The forward state reflects the local context of the current goal. Before normalisation, this is the local context of preNormGoal; after normalisation, it is the local context of the post-normalisation goal (unless normalisation solved the goal, in which case the forward state is undetermined).

                                                • forwardRuleMatches : ForwardRuleMatches

                                                  Complete matches of forward rules for the current goal (in the same sense as above).

                                                • successProbability : Percent
                                                • addedInIteration : Iteration
                                                • lastExpandedInIteration : Iteration
                                                • unsafeRulesSelected : Bool
                                                • unsafeQueue : UnsafeQueue
                                                • failedRapps : Array RegularRule
                                                Instances For
                                                  instance Aesop.instNonemptyGoalData {Rappโœ MVarClusterโœ : Type} [Nonempty MVarClusterโœ] :
                                                  Nonempty (GoalData Rappโœ MVarClusterโœ)
                                                  structure Aesop.MVarClusterData (Goal Rapp : Type) :
                                                  • parent? : Option (IO.Ref Rapp)
                                                  • goals : Array (IO.Ref Goal)
                                                  • isIrrelevant : Bool
                                                  • state : NodeState
                                                  Instances For
                                                    def Aesop.instInhabitedMVarClusterData.default {aโœ aโœยน : Type} :
                                                    MVarClusterData aโœ aโœยน
                                                    Equations
                                                    Instances For
                                                      @[implicit_reducible]
                                                      instance Aesop.instInhabitedMVarClusterData {aโœ aโœยน : Type} :
                                                      Inhabited (MVarClusterData aโœ aโœยน)
                                                      Equations
                                                      structure Aesop.RappData (Goal MVarCluster : Type) :
                                                      Instances For
                                                        instance Aesop.instNonemptyRappData {Goalโœ : Type} [Nonempty Goalโœ] {MVarClusterโœ : Type} :
                                                        Nonempty (RappData Goalโœ MVarClusterโœ)
                                                        structure Aesop.TreeSpec :
                                                        Instances For
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            @[implemented_by Aesop.treeImpl]
                                                            @[reducible, inline]
                                                            Equations
                                                            Instances For
                                                              @[reducible, inline]
                                                              Equations
                                                              Instances For
                                                                @[reducible, inline]
                                                                Equations
                                                                Instances For
                                                                  @[inline]
                                                                  Equations
                                                                  Instances For
                                                                    @[inline]
                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      @[inline]
                                                                      Equations
                                                                      Instances For
                                                                        @[inline]
                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For
                                                                          @[inline]
                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          Instances For
                                                                            @[inline]
                                                                            Equations
                                                                            Instances For
                                                                              @[inline]
                                                                              Equations
                                                                              • One or more equations did not get rendered due to their size.
                                                                              Instances For
                                                                                @[inline]
                                                                                Equations
                                                                                Instances For
                                                                                  @[inline]
                                                                                  Equations
                                                                                  Instances For
                                                                                    @[inline]
                                                                                    Equations
                                                                                    Instances For
                                                                                      @[inline]
                                                                                      Equations
                                                                                      Instances For
                                                                                        @[inline]
                                                                                        def Aesop.Goal.depth (g : Goal) :
                                                                                        Nat
                                                                                        Equations
                                                                                        Instances For
                                                                                          @[inline]
                                                                                          Equations
                                                                                          Instances For
                                                                                            @[inline]
                                                                                            Equations
                                                                                            Instances For
                                                                                              @[inline]
                                                                                              def Aesop.Goal.preNormGoal (g : Goal) :
                                                                                              Lean.MVarId
                                                                                              Equations
                                                                                              Instances For
                                                                                                @[inline]
                                                                                                def Aesop.Goal.mvars (g : Goal) :
                                                                                                UnorderedArraySet Lean.MVarId
                                                                                                Equations
                                                                                                Instances For
                                                                                                  @[inline]
                                                                                                  Equations
                                                                                                  Instances For
                                                                                                    @[inline]
                                                                                                    Equations
                                                                                                    Instances For
                                                                                                      @[inline]
                                                                                                      def Aesop.Goal.setId (id : GoalId) (g : Goal) :
                                                                                                      Equations
                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                      Instances For
                                                                                                        @[inline]
                                                                                                        Equations
                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                        Instances For
                                                                                                          @[inline]
                                                                                                          def Aesop.Goal.setChildren (children : Array RappRef) (g : Goal) :
                                                                                                          Equations
                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                          Instances For
                                                                                                            @[inline]
                                                                                                            Equations
                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                            Instances For
                                                                                                              @[inline]
                                                                                                              def Aesop.Goal.setDepth (depth : Nat) (g : Goal) :
                                                                                                              Equations
                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                              Instances For
                                                                                                                @[inline]
                                                                                                                def Aesop.Goal.setIsIrrelevant (isIrrelevant : Bool) (g : Goal) :
                                                                                                                Equations
                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                Instances For
                                                                                                                  @[inline]
                                                                                                                  def Aesop.Goal.setIsForcedUnprovable (isForcedUnprovable : Bool) (g : Goal) :
                                                                                                                  Equations
                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                  Instances For
                                                                                                                    @[inline]
                                                                                                                    def Aesop.Goal.setPreNormGoal (preNormGoal : Lean.MVarId) (g : Goal) :
                                                                                                                    Equations
                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                    Instances For
                                                                                                                      @[inline]
                                                                                                                      Equations
                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                      Instances For
                                                                                                                        @[inline]
                                                                                                                        def Aesop.Goal.setMVars (mvars : UnorderedArraySet Lean.MVarId) (g : Goal) :
                                                                                                                        Equations
                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                        Instances For
                                                                                                                          @[inline]
                                                                                                                          def Aesop.Goal.setForwardState (forwardState : ForwardState) (g : Goal) :
                                                                                                                          Equations
                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                          Instances For
                                                                                                                            @[inline]
                                                                                                                            Equations
                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                            Instances For
                                                                                                                              @[inline]
                                                                                                                              def Aesop.Goal.setSuccessProbability (successProbability : Percent) (g : Goal) :
                                                                                                                              Equations
                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                              Instances For
                                                                                                                                @[inline]
                                                                                                                                def Aesop.Goal.setAddedInIteration (addedInIteration : Iteration) (g : Goal) :
                                                                                                                                Equations
                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                Instances For
                                                                                                                                  @[inline]
                                                                                                                                  def Aesop.Goal.setLastExpandedInIteration (lastExpandedInIteration : Iteration) (g : Goal) :
                                                                                                                                  Equations
                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                  Instances For
                                                                                                                                    @[inline]
                                                                                                                                    def Aesop.Goal.setUnsafeRulesSelected (unsafeRulesSelected : Bool) (g : Goal) :
                                                                                                                                    Equations
                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                    Instances For
                                                                                                                                      @[inline]
                                                                                                                                      def Aesop.Goal.setUnsafeQueue (unsafeQueue : UnsafeQueue) (g : Goal) :
                                                                                                                                      Equations
                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                      Instances For
                                                                                                                                        @[inline]
                                                                                                                                        def Aesop.Goal.setState (state : GoalState) (g : Goal) :
                                                                                                                                        Equations
                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                        Instances For
                                                                                                                                          @[inline]
                                                                                                                                          def Aesop.Goal.setFailedRapps (failedRapps : Array RegularRule) (g : Goal) :
                                                                                                                                          Equations
                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                          Instances For
                                                                                                                                            @[implicit_reducible]
                                                                                                                                            instance Aesop.Goal.instBEq :
                                                                                                                                            BEq Goal
                                                                                                                                            Equations
                                                                                                                                            @[implicit_reducible]
                                                                                                                                            instance Aesop.Goal.instHashable :
                                                                                                                                            Hashable Goal
                                                                                                                                            Equations
                                                                                                                                            @[inline]
                                                                                                                                            Equations
                                                                                                                                            Instances For
                                                                                                                                              @[inline]
                                                                                                                                              Equations
                                                                                                                                              Instances For
                                                                                                                                                @[inline]
                                                                                                                                                Equations
                                                                                                                                                Instances For
                                                                                                                                                  @[inline]
                                                                                                                                                  Equations
                                                                                                                                                  Instances For
                                                                                                                                                    @[inline]
                                                                                                                                                    Equations
                                                                                                                                                    Instances For
                                                                                                                                                      @[inline]
                                                                                                                                                      def Aesop.Rapp.scriptSteps? (r : Rapp) :
                                                                                                                                                      Option (Array Script.LazyStep)
                                                                                                                                                      Equations
                                                                                                                                                      Instances For
                                                                                                                                                        @[inline]
                                                                                                                                                        def Aesop.Rapp.originalSubgoals (r : Rapp) :
                                                                                                                                                        Array Lean.MVarId
                                                                                                                                                        Equations
                                                                                                                                                        Instances For
                                                                                                                                                          @[inline]
                                                                                                                                                          def Aesop.Rapp.metaState (r : Rapp) :
                                                                                                                                                          Lean.Meta.SavedState
                                                                                                                                                          Equations
                                                                                                                                                          Instances For
                                                                                                                                                            @[inline]
                                                                                                                                                            Equations
                                                                                                                                                            Instances For
                                                                                                                                                              @[inline]
                                                                                                                                                              def Aesop.Rapp.setId (id : RappId) (r : Rapp) :
                                                                                                                                                              Equations
                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                              Instances For
                                                                                                                                                                @[inline]
                                                                                                                                                                def Aesop.Rapp.setParent (parent : GoalRef) (r : Rapp) :
                                                                                                                                                                Equations
                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                Instances For
                                                                                                                                                                  @[inline]
                                                                                                                                                                  def Aesop.Rapp.setChildren (children : Array MVarClusterRef) (r : Rapp) :
                                                                                                                                                                  Equations
                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                  Instances For
                                                                                                                                                                    @[inline]
                                                                                                                                                                    def Aesop.Rapp.setState (state : NodeState) (r : Rapp) :
                                                                                                                                                                    Equations
                                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                                    Instances For
                                                                                                                                                                      @[inline]
                                                                                                                                                                      def Aesop.Rapp.setIsIrrelevant (isIrrelevant : Bool) (r : Rapp) :
                                                                                                                                                                      Equations
                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                      Instances For
                                                                                                                                                                        @[inline]
                                                                                                                                                                        def Aesop.Rapp.setAppliedRule (appliedRule : RegularRule) (r : Rapp) :
                                                                                                                                                                        Equations
                                                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                                                        Instances For
                                                                                                                                                                          @[inline]
                                                                                                                                                                          def Aesop.Rapp.setScriptSteps? (scriptSteps? : Option (Array Script.LazyStep)) (r : Rapp) :
                                                                                                                                                                          Equations
                                                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                                                          Instances For
                                                                                                                                                                            @[inline]
                                                                                                                                                                            def Aesop.Rapp.setOriginalSubgoals (originalSubgoals : Array Lean.MVarId) (r : Rapp) :
                                                                                                                                                                            Equations
                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                            Instances For
                                                                                                                                                                              @[inline]
                                                                                                                                                                              def Aesop.Rapp.setSuccessProbability (successProbability : Percent) (r : Rapp) :
                                                                                                                                                                              Equations
                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                              Instances For
                                                                                                                                                                                @[inline]
                                                                                                                                                                                def Aesop.Rapp.setMetaState (metaState : Lean.Meta.SavedState) (r : Rapp) :
                                                                                                                                                                                Equations
                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                Instances For
                                                                                                                                                                                  @[inline]
                                                                                                                                                                                  def Aesop.Rapp.setIntroducedMVars (introducedMVars : UnorderedArraySet Lean.MVarId) (r : Rapp) :
                                                                                                                                                                                  Equations
                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                  Instances For
                                                                                                                                                                                    @[inline]
                                                                                                                                                                                    def Aesop.Rapp.setAssignedMVars (assignedMVars : UnorderedArraySet Lean.MVarId) (r : Rapp) :
                                                                                                                                                                                    Equations
                                                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                                                    Instances For
                                                                                                                                                                                      @[implicit_reducible]
                                                                                                                                                                                      instance Aesop.Rapp.instBEq :
                                                                                                                                                                                      BEq Rapp
                                                                                                                                                                                      Equations
                                                                                                                                                                                      @[implicit_reducible]
                                                                                                                                                                                      instance Aesop.Rapp.instHashable :
                                                                                                                                                                                      Hashable Rapp
                                                                                                                                                                                      Equations

                                                                                                                                                                                      Miscellaneous Queries #

                                                                                                                                                                                      @[inline]
                                                                                                                                                                                      def Aesop.Goal.postNormGoalAndMetaState? (g : Goal) :
                                                                                                                                                                                      Option (Lean.MVarId ร— Lean.Meta.SavedState)
                                                                                                                                                                                      Equations
                                                                                                                                                                                      Instances For
                                                                                                                                                                                        def Aesop.Goal.postNormGoal? (g : Goal) :
                                                                                                                                                                                        Option Lean.MVarId
                                                                                                                                                                                        Equations
                                                                                                                                                                                        Instances For
                                                                                                                                                                                          def Aesop.Goal.currentGoal (g : Goal) :
                                                                                                                                                                                          Lean.MVarId
                                                                                                                                                                                          Equations
                                                                                                                                                                                          Instances For
                                                                                                                                                                                            def Aesop.Goal.parentRapp? (g : Goal) :
                                                                                                                                                                                            BaseIO (Option RappRef)
                                                                                                                                                                                            Equations
                                                                                                                                                                                            Instances For
                                                                                                                                                                                              def Aesop.Goal.parentMetaState (g : Goal) (rootMetaState : Lean.Meta.SavedState) :
                                                                                                                                                                                              BaseIO Lean.Meta.SavedState
                                                                                                                                                                                              Equations
                                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                                              Instances For
                                                                                                                                                                                                def Aesop.Goal.currentGoalAndMetaState (g : Goal) (rootMetaState : Lean.Meta.SavedState) :
                                                                                                                                                                                                Lean.MetaM (Lean.MVarId ร— Lean.Meta.SavedState)
                                                                                                                                                                                                Equations
                                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                Instances For
                                                                                                                                                                                                  def Aesop.Goal.safeRapps (g : Goal) :
                                                                                                                                                                                                  BaseIO (Array RappRef)
                                                                                                                                                                                                  Equations
                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                    def Aesop.Goal.hasSafeRapp (g : Goal) :
                                                                                                                                                                                                    BaseIO Bool
                                                                                                                                                                                                    Equations
                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                      Equations
                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                        def Aesop.Goal.isExhausted (g : Goal) :
                                                                                                                                                                                                        BaseIO Bool
                                                                                                                                                                                                        Equations
                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                          def Aesop.Goal.isActive (g : Goal) :
                                                                                                                                                                                                          BaseIO Bool
                                                                                                                                                                                                          Equations
                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                            def Aesop.Goal.hasProvableRapp (g : Goal) :
                                                                                                                                                                                                            BaseIO Bool
                                                                                                                                                                                                            Equations
                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                              def Aesop.Goal.firstProvenRapp? (g : Goal) :
                                                                                                                                                                                                              BaseIO (Option RappRef)
                                                                                                                                                                                                              Equations
                                                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                def Aesop.Goal.hasMVar (g : Goal) :
                                                                                                                                                                                                                Bool
                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                  def Aesop.Goal.isRoot (g : Goal) :
                                                                                                                                                                                                                  BaseIO Bool
                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                    def Aesop.Rapp.parentPostNormMetaState (r : Rapp) (rootMetaState : Lean.Meta.SavedState) :
                                                                                                                                                                                                                    BaseIO Lean.Meta.SavedState
                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                      def Aesop.Rapp.foldSubgoalsM {m : Type โ†’ Type} {ฯƒ : Type} [Monad m] [MonadLiftT (ST IO.RealWorld) m] (init : ฯƒ) (f : ฯƒ โ†’ GoalRef โ†’ m ฯƒ) (r : Rapp) :
                                                                                                                                                                                                                      m ฯƒ
                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                        def Aesop.Rapp.forSubgoalsM {m : Type โ†’ Type} [Monad m] [MonadLiftT (ST IO.RealWorld) m] (f : GoalRef โ†’ m Unit) (r : Rapp) :
                                                                                                                                                                                                                        m Unit
                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                          def Aesop.Rapp.subgoals {m : Type โ†’ Type} [Monad m] [MonadLiftT (ST IO.RealWorld) m] (r : Rapp) :
                                                                                                                                                                                                                          m (Array GoalRef)
                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                            def Aesop.Rapp.depth (r : Rapp) :
                                                                                                                                                                                                                            BaseIO Nat
                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                def Aesop.RappRef.getChildAuxDeclNameGenerator (r : RappRef) :
                                                                                                                                                                                                                                BaseIO Lean.DeclNameGenerator

                                                                                                                                                                                                                                Get a DeclNameGenerator for auxiliary declarations that can be used by children of this rapp. Successive calls to this function return DeclNameGenerators that are guaranteed to generate distinct names.

                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                Instances For